Field Guide · concept

A reverse proxy is a server that sits in front of one or more backend servers and forwards client requests to them, presenting a single front door while handling routing, encryption, caching, and security on their behalf.1

clients Reverse proxy TLS · route by path/host https /app /api /static http private backends one public front door; the backends stay hidden and speak plain HTTP
To the client the reverse proxy is the whole site. It terminates HTTPS at the edge, then routes each request by path or hostname to the right backend over plain internal HTTP — so several private services hide behind one public address, and TLS, caching, and security live in one place.

Overview

To the client, the reverse proxy is the website; it then decides which backend should handle each request. Along the way it commonly terminates TLS (so backends speak plain HTTP internally), routes by hostname or URL path, caches responses, compresses output, and shields backends from direct exposure. This contrasts with a forward proxy, which sits in front of clients to reach the wider internet. Popular reverse proxies include nginx, HAProxy, and Caddy.

Where it fits

A reverse proxy overlaps heavily with a load balancer — both front a pool of backends — and the same software often does both. It is a building block for web hosting, high availability, and the edge of a content delivery network. For a GopherTrunk web dashboard, a reverse proxy is a tidy way to add HTTPS and a clean public address in front of the decoder’s local web port.

Sources

  1. Reverse proxy — Wikipedia, on reverse proxies and their roles. 

See also