Een reverse proxy is een server die clientverzoeken onderschept, deze doorstuurt naar een of meer backend-servers en het antwoord aan de client retourneert—terwijl de details van de backend-servers voor de client verborgen blijven.
In tegenstelling tot een standaard proxy (waarmee clients expliciet verbinding maken), is een reverse proxy transparant voor de client. De client maakt verbinding met het adres van de reverse proxy, in de veronderstelling dat dit de werkelijke service is, terwijl de proxy verkeer naar verborgen backend-servers routert. Dit patroon is fundamenteel voor het schalen en beveiligen van moderne infrastructuur.
Hoe het werkt
Wanneer een client een verzoek naar example.com doet, maakt het verbinding met de reverse proxy die luistert op dat domein. De proxy inspecteert het verzoek, besluit welke backend-server het moet afhandelen (gebaseerd op belasting, pad, hostnaam of andere regels), stuurt het verzoek door, ontvangt het antwoord en stuurt het terug naar de client. De client leert nooit het IP-adres van de backend-server.
Veelgebruikte toepassingen
- Load balancing: Verdeelt verzoeken over meerdere backend-servers om overbelasting te voorkomen.
- SSL/TLS beëindiging: Handelt HTTPS codering af op de proxy-laag, wat de computerlast op backends vermindert.
- Caching en compressie: Slaat reacties op of comprimeert ze voordat ze naar clients worden verzonden.
- Beveiliging en verberging: Verbergt locaties en architecturen van backend-servers voor het internet.
- Verzoekrouting: Stuurt verkeer op basis van pad, hostnaam of andere criteria naar verschillende backends.
Concreet voorbeeld
Je draait drie interne backend-webservers (10.0.1.5, 10.0.1.6, 10.0.1.7). Clients nemen nooit rechtstreeks contact met ze op. In plaats daarvan vragen ze myapp.example.com aan, wat naar je reverse proxy op 203.0.113.42 wijst. De proxy verdeelt verzoeken round-robin over de drie backends, verzamelt antwoorden en stuurt ze naar clients.
TipReverse proxies verschillen van load balancers, hoewel de termen overlappen; een load balancer is doorgaans één functie die een reverse proxy uitvoert.