A reverse proxy is a type of a proxy server which sits in front of the actual server (to which the requests are intended to be sent). A Reverse proxy accepts requests from the client and forwards the requests to the actual server. Typically, the reverse proxy server resides in a DMZ. The client would never know that it is sending requests to a reverse proxy server (whereas in the case of a proxy server pattern, the client is cognizant of the fact that it is communicating with a Proxy and not the actual server).
Why do we need a Reverse Proxy?
A Reverse proxy is generally used for a variety of purposes as mentioned below:
- Load balancing
- To implement Gateways
- To implement security
- To implement caching
Apache server, Nginx server or a Custom implementation.