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.
Berichte
2024 GigaOm Radar for CDN
Whitepaper
Die drei Herausforderungen bei der Absicherung und Vernetzung von Anwendungsdiensten
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, fängt der Proxyserver diese Anfragen ab 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.
Ultra-schnelles CDN
Performance steigern mit dem Cloudflare CDN
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 subtil, aber wichtig. 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 handhaben. In diesem Fall kann ein Reverse-Proxy eine Load-Balancing-Lösung bereitstellen, wobei der eingehende Traffic gleichmäßig unter den verschiedenen Servern aufgeteilt 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. Cloudflares CDN 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.