Was ist ein Reverse-Proxy?
Ein Reverse-Proxy ist ein Server, der vor Webservern sitzt und Anfragen von Clients (z. B. Webbrowsern) an diese Webserver weiterleitet. Reverse-Proxys werden gewöhnlich implementiert, um Sicherheit, Performance und Zuverlässigkeit zu erhöhen. Um besser zu verstehen, wie ein Reverse-Proxy funktioniert und welche Vorteile er bieten kann, wollen wir zuerst definieren, was ein Proxyserver ist.
Was ist ein Proxyserver?
Ein Weiterleitungsproxy, oft als Proxy, Proxyserver oder Webproxy bezeichnet, ist ein Server, der vor einer Gruppe von Clientgeräten sitzt. Wenn diese Geräte Anfragen an Websites und Dienste im Internet stellen, nimmt der Proxyserver diese Anfragen entgegen und kommuniziert dann im Auftrag dieser Clients ähnlich einem Vermittler mit den Webservern.
Sehen wir uns zum Beispiel drei Computer an, die in einer typischen Kommunikation mit einem Weiterleitungsproxy eingebunden sind:
- A: Das ist der Heimcomputer des Benutzers
- B: Das ist ein Weiterleitungsproxyserver
- C: Das ist der Ursprungsserver einer Website (wo die Websitedaten gespeichert werden)
Bei einer Standardkommunikation im Internet würde sich Computer A direkt an Computer C wenden, wobei der Client Anfragen an den Ursprungsserver sendet und der Ursprungsserver dem Client antwortet. Wenn ein Weiterleitungsproxy eingerichtet ist, sendet A stattdessen Anfragen an B, der die Anfrage dann an C weiterleitet. C sendet daraufhin eine Antwort an B, der sie zurück zu A weiterleitet.
Warum würde irgendjemand diesen zusätzlichen Vermittler zu seiner Internetaktivität hinzufügen? Es gibt einige Gründe, warum man einen Weiterleitungsproxy verwenden sollte:
- Um Einschränkungen von Behörden oder Institutionen beim Browsen zu vermeiden. Einige Regierungen, Schulen und andere Organisationen verwenden Firewalls, um ihren Benutzern Zugriff auf eine eingeschränkte Version des Internets zu gewähren. Ein Weiterleitungsproxy kann eingesetzt werden, um diese Einschränkungen zu umgehen, weil der Benutzer mit dem Proxy verbunden wird, anstatt mit den Websites, die er besucht.
- Um Zugriff auf bestimmte Inhalte zu blockieren. Umgekehrt können Proxys auch eingestellt werden, um eine Gruppe von Benutzern am Zugriff auf bestimmte Websites zu hindern. Zum Beispiel könnte ein Schulnetzwerk konfiguriert werden, sich über einen Proxy zur Aktivierung von Inhaltsfilterregeln mit dem Internet zu verbinden, um die Weiterleitung von Antworten von Facebook und anderen Social-Media-Websites zu verweigern.
- Um Online-Identitäten zu schützen. In manchen Fällen möchten reguläre Internetbenutzer einfach mehr Online-Anonymität, aber in anderen Fällen leben Internetbenutzer an Orten, an denen die Regierung schwere Strafen für politische Dissidenten auferlegen kann. Wenn diese Benutzer die Regierung in einem Internetforum oder auf einer Social-Media-Plattform kritisieren, kann das zu Geld- oder Gefängnisstrafen für sie führen. Wenn einer dieser Dissidenten einen Weiterleitungsproxy einsetzt, um sich mit einer Website zu verbinden, auf der er politisch brisante Kommentare bekanntgibt, ist es schwerer, die zum Posting dieser Kommentare verwendete IP-Adresse bis zum Dissidenten zurückzuverfolgen. Nur die IP-Adresse des Proxyservers ist sichtbar.
Wodurch unterscheidet sich ein Reverse-Proxy?
Ein Reverse-Proxy ist ein Server, der vor einem oder mehr Webservern sitzt und Anfragen von Clients abfängt. Das ist anders als bei einem Weiterleitungsproxy, der vor den Clients sitzt. Wenn ein Reverse-Proxy verwendet wird und Clients Anfragen an den Ursprungsserver einer Website senden, werden diese Anfragen vom Reverse-Proxyserver an der Netzwerk-Edge abgefangen. Der Reverse-Proxyserver sendet die Anfragen dann an den Ursprungsserver und empfängt Antworten von ihm.
Der Unterschied zwischen einem Weiterleitungsproxy und einem Reverse-Proxy ist gering im Aufbau, aber entscheidend in der Funktion. Vereinfacht ausgedrückt lässt er sich so zusammenfassen: Ein Weiterleitungsproxy sitzt vor einem Client und sorgt dafür, dass kein Ursprungsserver jemals direkt mit diesem speziellen Client kommuniziert. Dagegen sitzt ein Reverse-Proxy vor einem Ursprungsserver und sorgt dafür, dass kein Client jemals direkt mit diesem Ursprungsserver kommuniziert.
Wir wollen dieses Konzept wieder anhand der beteiligten Computer veranschaulichen:
- D: eine beliebige Anzahl von Heimcomputern von Benutzern
- E: ein Reverse-Proxyserver
- F: einer oder mehrere Ursprungsserver
Gewöhnlich würden alle Anfragen von D direkt an F gehen, und F würde Antworten direkt an D senden. Wenn ein Reverse-Proxy verwendet wird, gehen alle Anfragen von D direkt an E, und E sendet seine Anfragen weiter an F und empfängt Antworten von F. Dann leitet E die entsprechenden Antworten weiter an D.
Im Folgenden beschreiben wir einige der Vorteile eines Reverse-Proxys:
- Load Balancing: Eine populäre Website mit Millionen von täglichen Benutzern kann ihren gesamten eingehenden Traffic eventuell nicht mit einem einzigen Ursprungsserver bewältigen. Stattdessen kann die Website auf unterschiedliche Server verteilt werden, die alle Anfragen für dieselbe Site verarbeiten. In diesem Fall kann ein Reverse-Proxy eine Load-Balancing-Lösung bereitstellen, wobei der eingehende Traffic gleichmäßig auf die verschiedenen Server verteilt wird, um zu verhindern, dass ein einzelner Server überlastet wird. Falls ein Server vollständig ausfällt, können andere Server einschreiten, um den Traffic zu handhaben.
- Schutz vor Angriffen: Wenn ein Reverse-Proxy eingerichtet ist, müssen eine Website oder ein Dienst nie die IP-Adresse ihrer Ursprungsserver aufdecken. Dadurch wird es für Angreifer viel schwerer, einen gezielten Angriff wie z. B. einen DDoS-Angriff gegen sie auszuführen. Stattdessen können die Angreifer nur auf den Reverse-Proxy wie z. B. das CDN von Cloudflare abzielen, der über höhere Sicherheit und mehr Ressourcen verfügt, um einen Cyberangriff abzuwehren.
- Globaler Serverlastenausgleich (GSLB): Bei dieser Form von Load Balancing kann eine Website auf mehrere Server auf der ganzen Welt verteilt werden, und der Reverse-Proxy sendet Clients zu dem Server, der ihnen am nächsten liegt. Dadurch werden die von Anfragen und Antworten zurückzulegenden Entfernungen und infolgedessen die Ladezeiten reduziert.
- Caching: Ein Reverse-Proxy kann auch Inhalte zwischenspeichern und so die Performance beschleunigen. Wenn zum Beispiel ein Benutzer in Paris eine Website mit Webservern in Los Angeles besucht, für die ein Reverse-Proxy verwendet wird, kann er sich mit einem lokalen Reverse-Proxyserver in Paris verbinden, der dann mit einem Ursprungsserver in Los Angeles kommunizieren muss. Der Proxyserver kann dann die Antwortdaten zwischenspeichern. Spätere Benutzer in Paris, die auf der Website browsen, erhalten dann die lokal zwischengespeicherte Version von dem Reverse-Proxyserver in Paris, wodurch eine viel schnellere Performance sichergestellt wird.
- SSL-Verschlüsselung: Verschlüsseln und Entschlüsseln von SSL-Kommunikationen (oder TLS-Kommunikationen) für jeden Client kann bei einem Ursprungsserver viel Datenverarbeitungsressourcen in Anspruch nehmen. Ein Reverse-Proxy kann konfiguriert werden, um alle eingehenden Anfragen zu entschlüsseln und alle ausgehenden Antworten zu verschlüsseln, und somit wertvolle Ressourcen am Ursprungsserver freistellen.
Wie wird ein Reverse-Proxy implementiert?
Manche Unternehmen bauen ihre eigenen Reverse-Proxys, aber dafür sind aufwendige Software- und Hardware-Engineering-Ressourcen sowie beträchtliche Investitionen in physische Hardware erforderlich. Eine der einfachsten und kostengünstigsten Methoden, um von allen Vorteilen eines Reverse-Proxys zu profitieren, besteht darin, sich für einen CDN-Dienst anzumelden. Zum Beispiel bietet das Cloudflare-CDN alle oben aufgeführten Performance- und Sicherheitsmerkmale und noch viele andere dazu.
FAQs
Was ist die Hauptfunktion eines Reverse-Proxys?
Ein Reverse-Proxy ist ein Server, der vor einem oder mehreren Webservern sitzt, um Anfragen von Clients abzufangen und weiterzuleiten. Er fungiert als Vermittler, der sicherstellt, dass kein Client direkt mit dem Ursprungsserver kommuniziert.
Wie unterscheidet sich ein Reverse-Proxy von einem Forward-Proxy?
Ein Forward-Proxy sitzt vor den Clients (Benutzern), um deren Anfragen an das Internet weiterzuleiten. Im Gegensatz dazu sitzt ein Reverse-Proxy vor den Servern, um den eingehenden Traffic aus dem Internet zu verwalten.
[Bild zum Vergleich der Forward-Proxy- mit der Reverse-Proxy-Architektur]Wie kann ein Reverse-Proxy bei der Lastverteilung helfen?
Bei Websites mit hohem Traffic kann ein Reverse-Proxy als Load Balancer fungieren, indem er eingehende Anfragen gleichmäßig auf einen Pool aus mehreren Ursprungsservern verteilt. Dies verhindert, dass ein einzelner Server überlastet wird, und stellt sicher, dass die Website auch dann verfügbar bleibt, wenn ein Server ausfällt.
Wie kann ein Reverse-Proxy die Sicherheit einer Website verbessern?
Durch die Verwendung eines Reverse-Proxys muss eine Website niemals die tatsächliche IP-Adresse ihrer Ursprungsserver preisgeben. Dadurch wird es für Angreifer erheblich schwerer, gezielte Angriffe wie DDoS-Angriffe gegen die Quelle zu starten. Stattdessen wickelt der Proxy den Traffic ab und kann seine speziellen Ressourcen zur Abwehr von Cyberbedrohungen nutzen.
Wie verbessert ein Reverse-Proxy die Performance durch Zwischenspeicherung?
Ein Reverse-Proxy kann Kopien von Website-Inhalten an Orten, die den Benutzern näher liegen, im Cache speichern. Wenn beispielsweise ein Benutzer in Chicago auf eine in London gehostete Website zugreift, kann ein lokaler Reverse-Proxy in Chicago die Daten speichern. Künftige Besucher aus der gleichen Region können die Inhalte dann direkt von diesem lokalen Proxy empfangen, was die Ladezeiten erheblich reduziert.
Was ist globaler Serverlastausgleich (GSLB) im Kontext von Reverse-Proxys?
GSLB ist eine Performance-Optimierung, bei der ein Reverse-Proxy den Benutzer zu dem Webserver leitet, der ihm geografisch am nächsten ist. Indem die physische Entfernung, die die Daten zwischen dem Client und dem Server zurücklegen müssen, minimiert wird, reduziert der Proxy die Latenzzeit und beschleunigt das Benutzererlebnis.
Welchen Vorteil bietet die Verwendung eines Reverse-Proxys für die SSL-Verschlüsselung?
Das Verschlüsseln und Entschlüsseln von SSL/TLS-Kommunikationen kann eine aufwendige Aufgabe für einen Ursprungsserver sein. Ein Reverse-Proxy kann diese Verantwortung übernehmen, indem er die Entschlüsselung eingehender Anfragen und die Verschlüsselung ausgehender Antworten übernimmt. Durch diesen Prozess wird wertvolle Rechenleistung freigesetzt, damit sich der Ursprungsserver auf andere Aufgaben konzentrieren kann.