Reverse proxy


In computer networks, a reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client, appearing as if they originated from the proxy server itself. Unlike a forward proxy, which is an intermediary for its associated clients to contact any server, a reverse proxy is an intermediary for its associated servers to be contacted by any client. In other words, a proxy acts on behalf of the client, while a reverse proxy acts on behalf of the server; a reverse proxy is usually an internal-facing proxy used as a 'front-end' to control and protect access to a server on a private network.
Quite often, popular web servers use reverse-proxying functionality, shielding application frameworks of weaker HTTP capabilities. In this context, "weaker" means limitations in ability to handle excessive load, and limitation in handling the entire variety of request formats that can adhere to HTTP 1.x, HTTP 2.x, or requests which may be hard to detect. A reverse proxy in such cases could transform HTTPS requests into HTTP requests, buffer incoming requests based on the load of the "shielded" server, handle cookies/session data, or transform one request into multiple requests and then synthesize the responses, among other possibilities.

Uses of reverse proxies

A HTTP/S reverse proxy can read and modify all traffic and IPs of web users going through it. In order to filter/cache/compress or otherwise modify the traffic, it must be able to decrypt and reencrypt the HTTPS traffic and thus possess the TLS certificate's corresponding private key. Thus it can obviously log all passwords going through it or inject malware into the web sites, and might do so if compromised or run by a malicious party. Reverse proxies are also another single point of failure if there is no obvious way to access the server directly.
Using the reverse proxy of a third party places the entire triad of Confidentiality, Integrity and Availability in the hands of said third party.
If a reverse proxy is fronting many different domains, its outage could bring down all fronted domains.