What is Reverse Proxy?
Turkish: Reverse Proxy
A reverse proxy sits in front of backend servers, routing client traffic while handling TLS termination, caching, security, and load balancing.
What is a Reverse Proxy?
A reverse proxy receives client requests first and forwards them to the right backend server. A user connects to example.com; the reverse proxy decides which application server, container, or static asset source should handle the request.
Nginx, HAProxy, Caddy, and some CDN services can work in this role. A forward proxy represents the user going out to the internet, while a reverse proxy represents servers facing incoming traffic.
How Does it Work?
A reverse proxy can handle several responsibilities:
- TLS termination: Manage HTTPS certificates and communicate with backends over HTTP or separate TLS
- Routing: Send
/api,/admin, or different domains to different services - Caching: Serve static or cacheable responses without contacting the backend
- Compression: Reduce response size with gzip or Brotli
- Access control: Apply IP restrictions, rate limits, or basic authentication
When traffic distribution becomes more advanced, a reverse proxy may also act as a load balancer.
Business Use
Reverse proxies are used to run multiple applications under one domain, migrate old systems beside new services, or hide the real backend addresses from the public internet. They also make operational changes such as blue-green deployment and maintenance pages easier to control.
There is overlap with an API gateway, but an API gateway usually adds API-specific capabilities such as authentication, quotas, developer portals, and contract management. A reverse proxy is a more general traffic routing layer.
Related Terms
An API Gateway sits between clients and services to centralize routing, authentication, quotas, observability, and versioning.
Load BalancerA load balancer distributes incoming network traffic across multiple servers to ensure high availability and performance.
NginxNginx is an event-driven web server that serves static content, proxies requests, and distributes traffic across backend servers.