Reverse-Proxys kommen als ver­mit­teln­de Netz­werk­kom­po­nen­te zum Einsatz, um die Server von öf­fent­li­chen On­line­diens­ten ab­zu­si­chern. Hierfür nehmen sie Server-Anfragen stell­ver­tre­tend entgegen und leiten sie an die User weiter.

Wie funk­tio­niert ein Reverse-Proxy?

Grund­sätz­lich fungiert ein Proxy-Server als eine Kom­mu­ni­ka­ti­ons­schnitt­stel­le im Netzwerk, die Anfragen ent­ge­gen­nimmt und stell­ver­tre­tend an einen Ziel-Server wei­ter­lei­tet. Ein Reverse-Proxy wird dabei immer zwischen den Clients (z. B. Web­brow­sern) und den Backend-Servern (z. B. Web­ser­vern, Da­ten­bank­ser­vern oder An­wen­dun­gen) ge­schal­tet. Sobald eine Client-Anfrage gestellt wird, kommt er zum Einsatz und ent­schei­det, ob und an welche interne Ser­ver­kom­po­nen­te diese wei­ter­ge­lei­tet werden soll. Folgende vier grund­le­gen­den Schritte fallen in diesem Prozess an:

  1. Empfang der Client-Anfrage: Der Reverse-Proxy nimmt HTTP-, HTTPS- oder auch andere Anfragen wie FTP oder WebSocket entgegen.
  2. Analyse der Anfrage: Der Proxy überprüft, ob die Anfrage gültig ist, ob sie Si­cher­heits­ri­si­ken birgt und ob es eine zwi­schen­ge­spei­cher­te Version gibt.
  3. Wei­ter­lei­tung an den passenden Server: Falls die Anfrage nicht aus dem Cache be­ant­wor­tet werden kann, sendet der Reverse-Proxy die Anfrage an einen der internen Server.
  4. Antwort an den Client: Der Reverse-Proxy empfängt die Antwort vom Backend-Server, ver­ar­bei­tet sie ggf. weiter (z. B. Ver­schlüs­se­lung) und sendet sie an den an­fra­gen­den Client zurück.
Bild: Schematische Darstellung eines Reverse-Proxys
Reverse-Proxy und Webserver befinden sich in einem ge­mein­sa­men, internen Netzwerk
Hinweis

Reverse-Proxys werden in der Regel von einer Firewall ab­ge­si­chert in einem privaten Netzwerk oder einer vor­ge­la­ger­ten de­mi­li­ta­ri­sier­ten Zone (DMZ) in­stal­liert.

Was ist der Un­ter­schied zu Forward-Proxys?

Während Reverse-Proxys wie bereits erwähnt zwischen Clients und Backend-Servern ge­schal­tet sind, sitzen Forward-Proxys zwischen Clients und dem Internet. Ein Forward-Proxy ka­na­li­siert alle Client-Anfragen und leitet diese mit der eigenen Ab­sen­der­adres­se an die Ziel­ser­ver im Internet weiter. Auch Ser­ver­ant­wor­ten erreichen zuerst den Proxy, bevor sie an die ent­spre­chen­den Client-Geräte verteilt werden. Diese bleiben somit anonym – es sei denn, es handelt sich um einen trans­pa­ren­ten Proxy. Während ein Forward-Proxy Clients im internen Netzwerk vor externen Be­dro­hun­gen schützt, sichert ein Reverse-Proxy Server in einem öf­fent­li­chen Netzwerk und optimiert deren Er­reich­bar­keit.

Während Reverse-Proxys also durch Features wie Load Balancing und ver­schie­de­ne Si­cher­heits­funk­tio­nen klare Vorteile für Ser­ver­struk­tu­ren bieten, liegen die Stärken von Forward-Proxys im Schutz von Clients.

Bild: Schematische Darstellung eines Forward-Proxys
Anders als beim Reverse-Proxy befindet sich der Forward-Proxy in einem ge­mein­sa­men, internen Netzwerk mit den Clients.
Hinweis

Forward-Proxys werden häufig ein­ge­setzt, um den In­ter­net­zu­griff in Un­ter­neh­mens­netz­wer­ken zu kon­trol­lie­ren. Weitere Ein­satz­ge­bie­te sind die An­ony­mi­sie­rung in VPN-Diensten und die Umgehung von Geo-Blockaden.

Reverse-Proxy: An­wen­dungs­ge­bie­te

Die Bündelung der Client-Anfragen er­mög­licht es, den ein­ge­hen­den Da­ten­ver­kehr durch Reverse-Proxys hoch­gra­dig zu kon­trol­lie­ren. Unter anderem lassen sich so mehrere Server unter derselben URL zur Verfügung stellen, Anfragen gleich­mä­ßig auf ver­schie­de­ne Server verteilen und der Da­ten­ab­ruf durch Caching be­schleu­ni­gen. Im Folgenden sind die wich­tigs­ten Ein­satz­fel­der eines Reverse-Proxy-Servers auf­ge­führt.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kos­ten­güns­ti­ge vCPUs und leis­tungs­star­ke de­di­zier­te Cores
  • Höchste Fle­xi­bi­li­tät ohne Min­dest­ver­trags­lauf­zeit
  • Inklusive 24/7 Experten-Support

Load Balancing

Durch einen vor­ge­schal­te­ten Reverse-Proxy lässt sich eine URL mit diversen Servern im privaten Netzwerk ver­knüp­fen. Dies bietet die Mög­lich­keit, ein­ge­hen­de Anfragen auf mehrere Server zu verteilen. Ein solches Load Balancing beugt der Über­las­tung einzelner Systeme vor und wirkt bei Ausfällen kom­pen­sie­rend. Ist ein Server aufgrund von Hardware- oder Software-Fehlern nicht er­reich­bar, verteilt das Load-Balancing-Modul des Proxys ein­ge­hen­de Anfragen auf ver­blei­ben­de Server um. Die Ver­füg­bar­keit von Ser­ver­diens­ten wird so auch bei Ausfällen weiterhin si­cher­ge­stellt.

Caching

Um die Ge­schwin­dig­keit von Ser­ver­diens­ten zu be­schleu­ni­gen, können Reverse-Proxys eine Funktion bieten, mit der sich häufig ab­ge­ru­fe­ne Inhalte zwi­schen­spei­chern lassen. Dieses Caching er­mög­licht dem Proxy-Server, sich wie­der­ho­len­de Anfragen entweder teilweise oder komplett selbst zu be­ant­wor­ten. Dabei werden statische Inhalte wie Bilder oder CSS-Style­sheets im Cache des Proxys vor­ge­hal­ten. So müssen keine oder deutlich weniger Daten vom Backend-Server abgerufen werden, wodurch sich die Zu­griffs­ra­te auf Web­diens­te deutlich be­schleu­nigt. Da bei Inhalten, die sich schnell ändern, nicht immer si­cher­ge­stellt werden kann, dass der Cache des Proxys die aktuelle Version enthält, besteht jedoch die Gefahr, dass an­fra­gen­de Clients veraltete In­for­ma­tio­nen aus­ge­spielt bekommen.

Schutz- und Si­cher­heits­maß­nah­men

Ein Reverse-Proxy fungiert als eine Art Schutz­schild für die Backend-Server und kann in dieser Rolle ver­schie­de­ne Si­cher­heits­funk­tio­nen bieten:

  • DDoS-Schutz: Reverse-Proxys können ver­däch­ti­gen oder un­ge­wöhn­lich hohen Traffic im Rahmen von DDoS-Angriffen erkennen und blo­ckie­ren, bevor er die Backend-Server erreicht.
  • Web-Ap­pli­ca­ti­on-Firewall (WAF): Viele Reverse-Proxys be­inhal­ten eine WAF, die schäd­li­che Anfragen wie SQL-In­jec­tions oder Cross-Site-Scripting (XSS) filtern kann.
  • IP-White­lis­ting und -Black­lis­ting: Der Proxy kann bei Bedarf bestimmte IP-Adressen blo­ckie­ren oder nur Ver­bin­dun­gen von be­stimm­ten Netz­wer­ken zulassen.
  • Ver­schleie­rung der Backend-Server: Der Proxy ver­hin­dert, dass die internen IP-Adressen der Backend-Server öf­fent­lich sichtbar sind, was Angriffe erschwert.

Ver­schlüs­se­lung

Um die Backend-Server zu entlasten, lassen sich Reverse-Proxy-Server auch zur Ver­schlüs­se­lung einsetzen. In diesem Fall ent­schlüs­selt er die SSL/TLS-Anfrage des Clients (z. B. eine HTTPS-Ver­bin­dung), leitet die ent­schlüs­sel­ten Daten an die Backend-Server weiter und sendet die jeweilige Antwort erneut ver­schlüs­selt an den Client zurück. Die interne Kom­mu­ni­ka­ti­on kann dabei sowohl un­ver­schlüs­selt als auch ver­schlüs­selt statt­fin­den.

An­ony­mi­sie­rung

Ein Reverse-Proxy kann auch zur An­ony­mi­sie­rung des Traffics ein­ge­setzt werden, indem er die Original-IP-Adressen der Clients maskiert oder durch eigene IP-Adressen ersetzt. Auf diese Weise lässt sich die Pri­vat­sphä­re der Clients schützen, da die tat­säch­li­chen IP-Adressen nicht in den Logs sichtbar werden. Zudem wird so Geo-Load-Balancing möglich: Anfragen lassen sich, abhängig vom geo­gra­fi­schen Standort des Nutzers bzw. der Nutzerin, an den nächst­ge­le­ge­nen Server wei­ter­lei­ten.

Kom­pres­si­on

Mit ent­spre­chen­der Software aus­ge­stat­tet lässt sich ein Reverse-Proxy zur Kom­pres­si­on ein­ge­hen­der und aus­ge­hen­der Daten einsetzen. Ein beliebtes Programm zur Kom­pres­si­on von Websites ist gzip, das oft in Kom­bi­na­ti­on mit den Web­ser­vern Apache oder NGINX zum Einsatz kommt.

Tipp

In separaten Artikeln erklären wir Ihnen Schritt für Schritt, wie Sie einen NGINX-Reverse-Proxy bzw. einen Apache-Reverse-Proxy ein­rich­ten.

Zum Hauptmenü