A reverse proxy is a type of proxy server that sits in front of web servers and forwards client (also known as web browser) requests to those servers. The proxy server can cache requests for a certain period of time and thus can answer queries faster than the servers where the data resides, thus reducing load and improving the security of those servers. The requested resources are returned to the client, appearing as if they came from the server itself. Reverse proxies are typically internal-facing proxies used to increase security, performance, and reliability.
For better understanding a reverse proxy, it’s helpful to know what a proxy server is, sometimes called a forward proxy. A proxy server is a server that sits in front of a group of client machines and is external-facing, acting as a middle man between client machines and the internet. Forward proxies can be used to access blocked content or to preserve anonymity.
Reverse proxies differ from a proxy in that a reverse proxy acts on behalf of the server, while a proxy acts on behalf of the client. Proxies sit in front of a client and ensure that no origin server ever communicates directly with that specific client. Reverse proxies sit in front of an origin server and ensures no client ever communicates directly with that origin server. The difference is subtle but important.