Het doel van een reverse proxy is om te fungeren als tussenserver tussen clients (zoals webbrowsers) en backend-servers (zoals webservers of applicatieservers). In tegenstelling tot een forward proxy, die verzoeken van clients om toegang tot bronnen op internet afhandelt, beheert een reverse proxy de inkomende verzoeken van clients die op zoek zijn naar bronnen die worden gehost op backend-servers binnen een particulier netwerk of datacenter. De omgekeerde proxy onderschept klantverzoeken en stuurt deze door naar de juiste backend-server op basis van routeringsregels, taakverdelingsalgoritmen of beleid voor inhoudcaching. Deze opzet helpt de prestaties te verbeteren, de beveiliging te verbeteren en het beheer van de backend-infrastructuur te vereenvoudigen.
Het belangrijkste verschil tussen een proxy en een reverse proxy ligt in de richting van de verkeersstroom en de operationele context. Een proxyserver, ook wel forward proxy genoemd, stuurt verzoeken van clients door naar servers op internet en fungeert als tussenpersoon die de IP-adressen van klanten maskeert en de privacy en anonimiteit verbetert. Aan de andere kant bevindt zich een reverse proxy vóór backend-servers en onderschept inkomende klantverzoeken die bestemd zijn voor specifieke services of applicaties die op die servers worden gehost. De reverse proxy verbetert de schaalbaarheid door clientverzoeken over meerdere backend-servers te distribueren, verbetert de beveiliging door inkomend verkeer te inspecteren en filteren, en optimaliseert de prestaties door middel van caching en compressie van antwoorden voordat deze naar clients worden doorgestuurd.
Omgekeerde proxy’s worden in verschillende gebruiksscenario’s gebruikt om de toegang tot backend-services en -applicaties te optimaliseren, beveiligen en stroomlijnen. Een veelvoorkomend gebruiksscenario is taakverdeling, waarbij een reverse proxy binnenkomende clientverzoeken verdeelt over meerdere backend-servers op basis van vooraf gedefinieerde algoritmen (zoals round-robin of least-verbindingen). Dit helpt de werklast gelijkmatig te verdelen en de algehele systeemprestaties te verbeteren door te voorkomen dat een enkele server overspoeld wordt met verzoeken. Een ander gebruiksscenario is SSL-beëindiging, waarbij een reverse proxy SSL/TLS-verbindingen van clients beëindigt en nieuwe verbindingen met backend-servers tot stand brengt met behulp van niet-gecodeerde protocollen, waardoor de rekenkundige overhead op backend-servers wordt verminderd en het beheer van SSL-certificaten wordt vereenvoudigd.
Bovendien worden reverse proxy’s gebruikt voor het cachen van inhoud om vaak gebruikte statische inhoud (zoals afbeeldingen, scripts of video’s) dichter bij de clients op te slaan, waardoor de latentie en het bandbreedtegebruik worden verminderd. Dit verbetert de responsiviteit van webapplicaties en verbetert de gebruikerservaring door inhoud sneller te leveren. Reverse proxy’s spelen ook een cruciale rol bij het verbeteren van de beveiliging door te fungeren als buffer tussen clients en backend-servers, door inkomende verzoeken te inspecteren en filteren om bedreigingen zoals DDoS-aanvallen, SQL-injectie en cross-site scripting (XSS)-aanvallen te beperken. Door het afdwingen van beveiligingsbeleid en toegangscontroles helpen reverse proxy’s de backend-infrastructuur te beschermen tegen kwaadaardige activiteiten en zorgen ze tegelijkertijd voor naleving van wettelijke vereisten en normen voor gegevensprivacy.