Reverse Proxy
A reverse proxy accepts incoming connections from clients and forwards them to one or more backend services. From the client's perspective, they are communicating with a single server. The backend services are hidden behind the proxy.
The most common reverse proxies in self-hosted Linux environments are Nginx, Caddy, Traefik, and HAProxy. In cloud environments, Cloudflare, AWS ALB, and Vercel's edge network serve as reverse proxies.
What a Reverse Proxy Does
TLS termination — the proxy handles HTTPS, so backend services can communicate over plain HTTP internally. Host-based routing — route app.domain.com to one backend, api.domain.com to another, all on the same server. Path-based routing — route /api/ to one service, / to another. Load balancing — distribute traffic across multiple backend instances. Header manipulation — add X-Forwarded-For, X-Real-IP, security headers.
Common Misconfigurations
Dangling routes pointing to stopped containers are the most frequent issue — Nginx config references a backend that no longer exists, causing 502 errors. Missing SSL redirects (HTTP not redirected to HTTPS) are the second most common. Traefik users frequently encounter label conflicts when migrating from v2 to v3, as label syntax changed significantly.