Was ist ein Reverse-Proxy?
Ein Reverse-Proxy wird eingesetzt, um Lastverteilungsdienste bereitzustellen und zunehmend auch, um an strategischen Punkten in einem Netzwerk mithilfe von Web Application Firewalls, Application Delivery Firewalls und umfassender Inhaltsprüfung die Sicherheit von Webanwendungen durchzusetzen.
Was ist ein Reverse-Proxy?
Im Netzwerk- und Webdatenverkehr ist ein Proxy ein Gerät oder Server das bzw. der im Auftrag anderer Geräte agiert. Er befindet sich zwischen zwei Instanzen und erbringt einen Dienst. Proxys sind Hardware- oder Softwarelösungen, die zwischen Client und Server geschaltet sind, um Anfragen und mitunter auch Antworten zu verwalten.
In der Regel ist ein Reverse-Proxy-Server den Webservern vorgeschaltet und leitet Anfragen von Clients (z. B. Webbrowsern) an diese Webserver weiter. Die angeforderten Ressourcen werden anschließend an den Client zurückgegeben, wobei es so erscheint, als stammten sie vom Proxyserver selbst. Dies schafft eine zusätzliche Abstraktions- und Kontrollebene, um einen reibungslosen Netzwerkverkehr zwischen Clients und Servern zu gewährleisten. Ein Reverse Proxy ermöglicht außerdem, Anfragen anhand verschiedenster Parameter weiterzuleiten, etwa nach Endgerät des Benutzers, Standort, Netzwerkbedingungen, Anwendungsstatus oder sogar Tageszeit.
Was ist der Unterschied zwischen einem Reverse-Proxy und einem Load-Balancer?
Reverse-Proxy-Server und Load Balancer sind beides Komponenten einer Client-Server-Architektur. Beide fungieren als Vermittler bei der Kommunikation zwischen Clients und Servern und übernehmen dabei Funktionen, die die Effizienz steigern. Sie können als dedizierte, speziell für diesen Zweck entwickelte Geräte implementiert werden. In modernen Webarchitekturen kommen jedoch zunehmend Softwareanwendungen zum Einsatz, die auf Standardhardware ausgeführt werden. Auch wenn sie scheinbar ähnliche Funktionen erfüllen, wollen wir uns ansehen, wann und warum sie üblicherweise für eine Website eingesetzt werden.
Ein Load Balancer verteilt eingehende Clientanfragen auf eine Gruppe von Servern, um eine zufriedenstellende Geschwindigkeit und einen optimalen Betrieb zu gewährleisten. Load Balancer werden meist eingesetzt, wenn eine Website mehrere Server benötigt, weil das Anfragevolumen zu hoch ist, als dass ein einzelner Server es effizient bewältigen könnte. Der Einsatz mehrerer Server beseitigt zudem einen Single Point of Failure und erhöht so die Zuverlässigkeit der Website. In der Regel stellen alle Server dieselben Inhalte bereit. Der Load Balancer hat die Aufgabe, die Arbeitslast so zu verteilen, dass die Kapazität jedes Servers bestmöglich genutzt, eine Überlastung einzelner Server verhindert und eine möglichst schnelle Antwort an den Client ermöglicht wird.
Ein Reverse-Proxy nimmt eine Anfrage von einem Client entgegen, leitet sie an einen Server weiter, der sie bearbeiten kann, und sendet die Antwort des Servers an den Client zurück. Während der Einsatz eines Load-Balancers nur sinnvoll ist, wenn mehrere Server vorhanden sind, kann der Einsatz eines Reverse-Proxys häufig auch bei nur einem Web- oder Anwendungsserver sinnvoll sein. Sie können sich den Reverse-Proxy als das „öffentliche Gesicht“ einer Website vorstellen. Seine Adresse wird für die Website veröffentlicht, und er befindet sich am Rand des Netzwerks der Website, um Anfragen von Webbrowsern und mobilen Apps nach den auf der Website gehosteten Inhalten entgegenzunehmen. Ein Reverse-Proxy bietet eine zusätzliche Abstraktions- und Kontrollebene, um einen reibungslosen Netzwerkverkehr zwischen Clients und Servern sicherzustellen. Der Reverse-Proxy bietet:
- Erhöhte Sicherheit. Außerhalb Ihres internen Netzwerks sind keine Informationen über Ihre Backend-Server sichtbar. Daher können böswillige Clients nicht direkt auf sie zugreifen, um etwaige Schwachstellen auszunutzen. Viele Reverse-Proxy-Server verfügen über Funktionen, die Backend-Server vor Distributed-Denial-of-Service-Angriffen (DDoS-Angriffen) schützen, indem sie beispielsweise Datenverkehr von bestimmten Client-IP-Adressen ablehnen (Denylisting) oder die Anzahl der pro Client akzeptierten Verbindungen begrenzen.
- Höhere Skalierbarkeit und Flexibilität. Da Clients nur die IP-Adresse des Reverse-Proxys sehen, können Sie die Konfiguration Ihrer Backend-Infrastruktur frei ändern. Dies ist besonders in einer Umgebung mit Lastverteilung nützlich, in der Sie die Anzahl der Server je nach Schwankungen des Datenverkehrs erhöhen oder verringern können.
- Webbeschleunigung. Reverse-Proxys können die Zeit verkürzen, die zum Generieren einer Antwort und zum Zurücksenden an den Client benötigt wird. Zur Leistungssteigerung kommen dabei Techniken wie SSL-Beschleunigung, intelligente Komprimierung und Caching zum Einsatz. Reverse-Proxys ermöglichen außerdem föderierte Sicherheitsdienste für mehrere Anwendungen, indem sie die Sicherheit von Webanwendungen durchsetzen.
Warum ist ein Reverse-Proxy wichtig?
Ein Reverse-Proxy wird für die Lastverteilung eingesetzt, um ein reibungsloseres Web-Erlebnis zu ermöglichen. Zunehmend dient er auch dazu, die Sicherheit von Webanwendungen an strategischen Punkten im Netzwerk mithilfe von Web Application Firewalls, Application Delivery Firewalls und umfassender Inhaltsprüfung durchzusetzen.
In Kombination mit Cloud-Bereitstellungen kann ein Reverse-Proxy Cloud Bursting und Architekturen mit aufgeteilten Anwendungen ermöglichen, die die wirtschaftlichen Vorteile der Cloud bieten, ohne Abstriche bei Kontrolle oder Sicherheit zu machen.
Wie funktioniert ein Reverse-Proxy?
Ein Reverse-Proxy kann entweder als einfacher Weiterleitungsdienst fungieren oder aktiv am Austausch zwischen Client und Server teilnehmen. Behandelt der Proxy Client und Server durch die Implementierung zweier separater Netzwerk-Stacks als eigenständige Einheiten, wird er als Full-Proxy bezeichnet.
Ein Full Proxy stellt eine TCP-Clientverbindung sowie eine separate TCP-Serververbindung her, wobei zwischen beiden eine kleine Lücke besteht. Der Client verbindet sich auf der einen Seite mit dem Proxy, während der Proxy eine separate, unabhängige Verbindung zum Server herstellt. Die Kommunikation erfolgt auf beiden Seiten bidirektional. Da die Verbindungen unabhängig voneinander sind, werden die clientseitige und die serverseitige Verbindung niemals miteinander vermischt.
Wie handhabt F5 Reverse-Proxy-Funktionen?
Die Funktion eines Reverse-Proxys kann je nach Komplexität der Umgebung und den Anforderungen des Unternehmens von einem Gerät, einer Software oder einem Dienst übernommen werden.
Cloud-native Umgebungen
Ideal für Cloud-native-Umgebungen ist NGINX Plus ein softwarebasierter Reverse-Proxy, der ähnlich wie ein Hardwaregerät Lastverteilung, Layer-7-Routing und die Optimierung der Web-Performance übernimmt. NGINX Plus trägt außerdem dazu bei, die Performance, Zuverlässigkeit, Sicherheit und Skalierbarkeit von Websites zu verbessern. NGINX Plus ist wesentlich kostengünstiger als hardwarebasierte Lösungen mit vergleichbaren Funktionen. Mit den umfassenden Lastverteilungs- und Reverse-Proxy-Funktionen von NGINX Plus können Sie ein hochoptimiertes Netzwerk für die Anwendungsbereitstellung aufbauen. NGINX Plus kann sowohl in der Public Cloud als auch in privaten Rechenzentren zu geringeren Kosten als ein vollständiger Proxy bereitgestellt werden.
Hybride Umgebungen
Für komplexere und hybride Umgebungen ist das F5 BIG-IP-System ein vollständiger Proxy, der als vollwertiger Reverse-Proxy-Server bereitgestellt werden kann und Anfragen sowie Antworten abfangen, prüfen und verarbeiten kann. Dies umfasst die grundlegenden Funktionen des Lastenausgleichs und der Optimierung der Web-Performance sowie erweiterte Traffic-Management-Dienste wie Sicherheit auf Anwendungsebene, Webbeschleunigung, Seiten-Routing und sicheren Remote-Zugriff.

