Reverse Proxy

Networking

Also known as: proxy server

A reverse proxy is a server that sits in front of backend servers and forwards client requests to them, providing load balancing, caching, SSL termination, and security benefits.

Unlike a forward proxy (which acts on behalf of clients), a reverse proxy acts on behalf of servers. Clients connect to the reverse proxy thinking it is the origin server, and the proxy transparently forwards requests to the actual backends.

Reverse proxies serve multiple purposes in system design: they can distribute load across servers, cache frequently requested content, terminate SSL/TLS connections (offloading encryption from backend servers), compress responses, and protect backend servers from direct exposure to the internet.

The distinction between a reverse proxy and a load balancer is often blurred since most reverse proxies include load balancing capabilities. In practice, NGINX and HAProxy commonly serve both roles.

In system design interviews, reverse proxies are often the first component placed between the internet and your application servers.

Related Terms

Ready to design?

Practice using reverse proxy in a real system design on Supaboard's interactive whiteboard.

Browse Challenges