2 mins
Proxies
Proxies are conceptually very simple. They are intermediary servers that sit between a client and servers (A client may refer to a server, browser, or desktop application). The crux of a proxy is who in the transaction is being anonymized. Depending on this, your proxy may be a Forward or Reverse proxy.
Forward Proxy
A forward proxy hides the identity of a requesting client by sending requests on behalf of the client. This is how VPNs that allow you to view content on streaming platforms not available in your region work. The request will appear to originate from a different area in the world.
Reverse Proxy
A reverse proxy hides the identity of the server that traffic is being routed to. From the view of the client, responses are returned from the proxy server. Reverse proxies are extremely common in modern networking and enable much of the modern internet that we see today. A single API on a popular application (e.g. instagram, reddit) may internally reverse proxy to dozens or hundreds of different servers running different stacks in different domains.
Why reverse proxies are so important
A reverse proxy server can be used to implement many cross-cutting concerns of a system and decouple them from application logic. This includes:
- Load balancing
- Authorization
- Rate limiting
- SSL Encryption
- Caching