Intro
A Reverse Proxy is a Server that lives between the web severs and their clients. It forwards the clients’ requests to the web servers, while increasing security, performance, and reliability.
What is a Proxy Server?
A ProxyServer (AKA Forward Proxy, Proxy Server) is a server that intercepts the requests from client machines to the web servers or whatever resources they’re requesting from, and interacts with the servers on behalf of the clients. // It's all in the name.
The following illustration shows a classic example:

Benefits
- avoids restricted browsing by institutions and governments by connecting to the proxy instead of restricted resources directly.
- Blocks access to specified content. Opposite of the previous example, a connection to a proxy can be used to block and filter access to certain resources.
- Protects identities online. It’s another layer of obfuscation, that masks your IP address and provides increased anonymity.
How Are Reverse Proxies Different?
The difference lies in where the server sits. With a reverse proxy, it lives between the web servers and the outside web. The reverse proxy is at the edge of the web servers network, and intercepts all requests incoming from the outside network, and forwards them to the web servers accordingly.
Another illustration to drivve this home:

Benefits
- Load Balancing: this is a fancy term for serve traffic man. The proxy will manage the traffic and distribute it based on a specific job/event handling algorithm. For more, check out Load Balancers
- Protection From Attacks: Another layer between the outside and the web servers, it hides the servers IP addresses and origin(s). Reducing the risk of attacks such as DDOS.
- Caching: Another system design basic, Caching, the server that acts as a proxy can also be configured to be a cache for the system, that way it can serve frequently requested content without asking the servers, reducing latency and computational load.
- SSL Encryption: Encrypting and decrypting the SSL communications for each client can be expensive on the web servers, a reverse proxy can also be configured to handle this to free resources on the origin servers.