Forward Proxy
A proxy that sits between client and internet, making requests on the client's behalf. The client knows it's using a proxy. Used for filtering, caching, and anonymity. Not the same as a CDN (which is a reverse proxy).
Full Explanation
A forward proxy acts on behalf of the client. The client explicitly configures it (browser proxy settings, PAC file, or transparent interception). Corporate networks use them to filter traffic, cache frequently accessed content, and log usage. VPNs are a form of forward proxy.
A CDN is the opposite: a reverse proxy. It acts on behalf of the server/origin. The client doesn't know or care that a CDN is involved. The CDN intercepts requests to the origin's domain and serves cached content or forwards to the origin.
Understanding this distinction matters for CDN troubleshooting. When a user behind a corporate forward proxy accesses your CDN-fronted site, the request goes: browser -> forward proxy -> CDN edge (reverse proxy) -> origin. Each hop can add headers, modify caching, or interfere with connections.
Examples
# Squid as a forward proxy
http_port 3128
acl allowed_sites dstdomain .example.com .cdn.example.net
http_access allow allowed_sites
http_access deny all
# Client: configure proxy
$ export http_proxy=http://proxy.corp.example.com:3128
$ export https_proxy=http://proxy.corp.example.com:3128
$ curl https://cdn.example.com/ # Goes through forward proxy
# Forward proxy vs reverse proxy:
# Forward: client -> [proxy] -> internet (client knows)
# Reverse: client -> [CDN/proxy] -> origin (client doesn't know)
Video Explanation
Frequently Asked Questions
A proxy that sits between client and internet, making requests on the client's behalf. The client knows it's using a proxy. Used for filtering, caching, and anonymity. Not the same as a CDN (which is a reverse proxy).
# Squid as a forward proxy
http_port 3128
acl allowed_sites dstdomain .example.com .cdn.example.net
http_access allow allowed_sites
http_access deny all
# Client: configure proxy
$ export http_proxy=http://proxy.corp.example.com:3128
$ export https_proxy=http://proxy.corp.example.com:3128
$ curl https://cdn.example.com/ # Goes through forward proxy
# Forward proxy vs reverse proxy:
# Forward: client -> [proxy] -> internet (client knows)
# Reverse: client -> [CDN/proxy] -> origin (client doesn't know)
Related CDN concepts include:
- Edge Server — A CDN server located at the network edge, close to end users. Handles caching, SSL …
- CDN (Content Delivery Network) (CDN) — A distributed network of servers that caches and delivers content from locations close to end …
- Origin — The server (or group of servers) that holds the authoritative version of your content. When …