Traffic from the internet at large enters system through reverse proxy, which then routes it to the service.
The client makes ordinary http requests that are going to the proxy. The proxy then decides (based on several routing criterion) where to send internally those requests and returns the content as if it were itself the origin.
A typical usage of a reverse proxy is:
- to enable encrypted HTTPS connections
- to balance load among several back-end servers
- to provide caching for a slower back-end server (performance)
- to bring several servers into the same URL space.
- to enable password-protection content
- to inject code in the page (Example: browser-sync)
- to send the request to a mock server for testing purpose.
See HTTP - Proxy
An HTTP reverse proxy uses non-standard headers to inform the upstream server about the user’s IP address and other request properties.
See IP in HTTP
The below application may cache HTTP response