System Design

Load Balancer vs Reverse Proxy

Load balancer vs reverse proxy explained. Why every load balancer is a kind of reverse proxy, and where they overlap.

Load Balancer
Load Balancer
VS
Reverse Proxy
Reverse Proxy
The short answer

A reverse proxy sits in front of one or more servers and forwards client requests to them, often adding caching or security. A load balancer is a specific type of reverse proxy whose main job is distributing traffic across multiple servers to keep load even.

Load Balancer vs Reverse Proxy at a glance

Load BalancerReverse Proxy
Main purposeDistribute traffic across servers evenlyForward requests to backend servers
Number of backend serversUsually multiple, by designCan be just one
Common extra featuresHealth checks, failover routingCaching, SSL termination, compression
RelationshipIs a specific type of reverse proxyA broader category that includes load balancers
Example toolsAWS ELB, HAProxy in LB modeNginx, Cloudflare, Apache
Failure handlingReroutes traffic if a server goes downDepends on configuration, not guaranteed

When to use each

Choose Load Balancer when

  • You have multiple backend servers and need traffic distributed evenly across them.
  • You need automatic failover if one server instance becomes unhealthy.
  • You are scaling horizontally and need something to route across the new instances.

Choose Reverse Proxy when

  • You want to hide your backend server details from the public internet.
  • You need to handle SSL termination, caching, or compression in front of your app.
  • You are fronting a single server but still want the benefits of a proxy layer.

One is a type of the other

This is not really two competing tools, it is a broader category and a specific case inside it. A reverse proxy is anything that sits between clients and one or more backend servers, forwarding requests on their behalf. A load balancer is a reverse proxy that specifically focuses on spreading traffic evenly across multiple backend servers, often with health checks to avoid sending traffic to a server that is down.

Why the terms get used differently in practice

In everyday conversation, people say reverse proxy when they mean a proxy in front of a single server doing things like SSL termination or caching, and they say load balancer when the main job is distributing traffic across many servers. Tools like Nginx can actually do both at once, acting as a reverse proxy with caching and also load balancing traffic across several backend instances.

In the interview

A precise answer for an interview is that every load balancer is a reverse proxy, but not every reverse proxy is a load balancer. The distinguishing feature is whether its core job is distributing traffic across multiple servers.

Frequently asked questions

Does Nginx count as a load balancer?

Nginx can act as both. Used in front of a single server, it behaves as a reverse proxy. Configured to distribute requests across multiple backend servers, it becomes a load balancer.

What is SSL termination?

It means the proxy or load balancer handles decrypting incoming HTTPS traffic, so the backend servers can receive plain HTTP internally, simplifying certificate management to one place.

What load balancing algorithms are common?

Round robin, which cycles through servers in order, and least connections, which sends traffic to whichever server currently has the fewest active connections, are two of the most common.

Want more interview ready comparisons?

Browse every Load Balancer vs Reverse Proxy style breakdown, or explore the full question library.

All comparisons Browse questions