How a Reverse Proxy Works

A reverse proxy sits between clients and servers, forwarding client requests to the appropriate backend server. Unlike a forward proxy (which represents the client), a reverse proxy represents the server.

👤 Client
🔄 Reverse Proxy
🖥️ Backend Servers

The Flow

1.Client sends a request (e.g., GET /api/users) to the reverse proxy's public address
2.Proxy receives the request and decides which backend server should handle it
3.Proxy forwards the request to the chosen server (often modifying it along the way)
4.Backend server processes the request and sends a response to the proxy
5.Proxy receives the response and sends it back to the client

Common Reverse Proxies

Why Use One?

Load Balancing — distribute traffic across multiple servers so none gets overloaded
Security — backend servers are never exposed directly to the internet
SSL Termination — handle HTTPS encryption/decryption so backend servers don't have to
Caching — store responses and serve them again without hitting the backend
Compression — gzip responses before sending to client
AB Testing / Canary Deploys — route a percentage of traffic to different server versions