Was ist ein CDN und warum verwenden Unternehmen es?
Webagentur » Digitale Nachrichten » Was ist ein Reverse-Proxy und wie funktioniert er?

Was ist ein Reverse-Proxy und wie funktioniert er?

Reverse Proxys sind ein nützliches Werkzeug in der Werkzeugkiste jedes Systemadministrators. Sie haben viele Verwendungsmöglichkeiten, einschließlich Lastausgleich, Schutz vor DDOS-Angriffen

Was sind Reverse-Proxys?

Ein Standard-Proxy, Forward Proxy genannt, ist ein Server, über den die Verbindung eines Benutzers geleitet wird. In vielerlei Hinsicht ist es wie ein einfaches VPN, das vor Ihrer Internetverbindung sitzt. VPNs sind ein gängiges Beispiel, aber sie umfassen auch Dinge wie Schulfirewalls, die den Zugriff auf bestimmte Inhalte blockieren können.

Ein Reverse-Proxy funktioniert etwas anders. Es ist ein Backend-Tool, das von Systemadministratoren verwendet wird. Anstatt sich direkt mit einer Website zu verbinden, die Inhalte bereitstellt, kann ein Reverse-Proxy wie NGINX in der Mitte sitzen. Wenn es eine Anfrage von einem Benutzer erhält, leitet oder „proxyt“ es diese Anfrage an den Endserver weiter. Dieser Server wird als "Ursprungsserver" bezeichnet, da er derjenige ist, der tatsächlich auf Anfragen antwortet.

Während ein Benutzer wahrscheinlich weiß, ob er durch einen Forward-Proxy wie ein VPN oder eine Firewall geleitet wird, sind Reverse-Proxys primäre Tools. Soweit der Benutzer weiß, loggt er sich einfach in eine Website ein. Hinter dem Reverse-Proxy ist alles versteckt, was ebenfalls viele Vorteile hat.

Dieser Effekt tritt auch in umgekehrter Richtung auf. Der Ursprungsserver hat keine direkte Verbindung zum Benutzer und sieht nur eine Reihe von Anfragen von der Reverse-Proxy-IP. Dies kann ein Problem sein, aber die meisten Proxy-Dienste wie NGINX fügen Header hinzu wie X-Forwarded-For auf Nachfrage. Diese Header informieren den Ursprungsserver über die echte IP-Adresse des Clients.

Wofür werden Reverse-Proxys verwendet?

Reverse Proxys haben ein recht einfaches Konzept, erweisen sich jedoch als überraschend nützliches Tool mit vielen unerwarteten Anwendungsfällen.

Lastverteilung

Einer der Hauptvorteile eines Reverse-Proxys ist seine Leichtigkeit. Da sie die Anfragen nur weiterleiten, müssen sie nicht viel verarbeiten, insbesondere in Situationen, in denen eine Datenbank abgefragt werden muss.

Das bedeutet, dass der Engpass oft der Ursprungsserver ist, aber mit einem Reverse-Proxy davor können Sie problemlos mehrere Ursprungsserver haben. Beispielsweise könnte der Proxy 50 % der Anfragen an einen Server und 50 % an einen anderen senden, wodurch sich die Kapazität der Website verdoppelt. Dienste wie HAProxy sind darauf ausgelegt, damit gut umzugehen.

Dies ist ein sehr häufiger Anwendungsfall, und die meisten Cloud-Anbieter wie Amazon Web Services (AWS) bieten Load Balancing als Service an, sodass Sie es nicht selbst konfigurieren müssen. Mit der Cloud-Automatisierung können Sie sogar automatisch die Anzahl der Ursprungsserver als Reaktion auf den Datenverkehr erhöhen, eine Funktion, die als automatische Skalierung bezeichnet wird.

Load Balancer wie der Elastic Load Balancer von AWS können so konfiguriert werden, dass sie sich automatisch neu konfigurieren, wenn Ihre Ursprungsserver hoch- und heruntergefahren werden, was alles durch einen Reverse-Proxy unter der Haube ermöglicht wird.

Caching

Da ein Reverse-Proxy oft viel schneller antwortet als der Ursprungsserver, wird häufig eine Technik namens Caching verwendet, um Anfragen auf gemeinsamen Routen zu beschleunigen. Caching tritt auf, wenn Seitendaten auf dem Reverse-Proxy gespeichert und nur alle paar Sekunden/Minuten vom Ursprungsserver angefordert werden. Dadurch wird der Druck auf den Ursprungsserver stark reduziert.

Dieser Artikel, den Sie gerade lesen, wurde beispielsweise von WordPress bereitgestellt, das mit einer SQL-Datenbank kommunizieren muss, um den Inhalt und die Metadaten des Artikels abzurufen. Dies bei jeder Seitenaktualisierung zu tun, ist verschwenderisch, da sich die Seite nicht wirklich ändert. Diese Route kann also zwischengespeichert werden und der Reverse-Proxy sendet einfach die letzte Antwort an den nächsten Benutzer zurück, anstatt erneut mit WordPress herumzuspielen.

Ein dediziertes Netzwerk von Reverse-Proxys, die Ihre Inhalte zwischenspeichern, wird als Content Delivery Network oder CDN bezeichnet. CDNs wie CloudFlare oder Fastly werden sehr häufig von großen Websites verwendet, um die globale Bereitstellung zu beschleunigen. Server auf der ganzen Welt, die Inhalte zwischenspeichern, werden als „Edge-Knoten“ bezeichnet, und wenn Sie viele davon haben, kann Ihre Website sehr auffällig werden.

Netzwerkschutz und Privatsphäre

Da der Benutzer nicht weiß, was sich hinter dem Reverse-Proxy verbirgt, kann er Ihre Ursprungsserver nicht ohne weiteres direkt angreifen. Tatsächlich werden Reverse-Proxys häufig mit Ursprungsservern in privaten Subnetzen verwendet, was bedeutet, dass sie keine eingehende Verbindung zum externen Internet haben.

Dadurch bleibt Ihre Netzwerkkonfiguration privat, und obwohl Sicherheit durch Unklarheit nie narrensicher ist, ist es besser, als sie für Angriffe offen zu lassen.

Dieses inhärente Vertrauen kann auch bei der Planung Ihres Netzwerks hilfreich sein. Beispielsweise ähnelt ein API-Server, der mit einer Datenbank kommuniziert, einem Reverse-Proxy. Die Datenbank weiß, dass sie dem API-Server im privaten Subnetz vertrauen kann, und der API-Server fungiert als Firewall für die Datenbank und lässt nur gute Verbindungen durch diese zu.

Konfigurierbare Schnittstelle

Einer der Vorteile von Reverse-Proxys wie NGINX ist ihr Konfigurationsgrad. Oft ist es nützlich, sie vor anderen Diensten zu haben, nur um zu konfigurieren, wie Benutzer auf diese Dienste zugreifen.

Beispielsweise ist NGINX in der Lage, Anfragen auf bestimmte Routen zu beschränken, was Missbraucher daran hindern kann, Tausende von Anfragen an Ursprungsserver von einer einzigen IP-Adresse zu stellen. Es stoppt DDOS-Angriffe nicht, aber es ist schön, es zu haben.

NGINX ist auch in der Lage, Datenverkehr von mehreren Domänennamen mit konfigurierbaren „Server“-Blöcken weiterzuleiten. Beispielsweise könnte es Anfragen an senden example.com an Ihren Ursprungsserver, sondern senden api.example.com zu Ihrem speziellen API-Server, oder files.example.com zu Ihrem Dateispeicher und so weiter. Jeder Server kann seine eigene Konfiguration und seine eigenen Regeln haben.

NGINX ist auch in der Lage, vorhandene Ursprungsserver um zusätzliche Funktionen wie zentralisierte HTTPS-Zertifikate und Header-Konfiguration zu erweitern.

Manchmal ist es einfach nützlich, NGINX auf demselben Computer wie einen anderen lokalen Dienst zu haben, nur um den Inhalt dieses Dienstes bereitzustellen. Beispielsweise verwenden ASP.NET-Web-APIs einen internen Webserver namens Kestrel, der gut auf Anforderungen reagiert, aber sonst nicht viel. Es ist sehr üblich, Kestrel auf einem privaten Port auszuführen und NGINX als konfigurierbaren Reverse-Proxy zu verwenden.

Zentralisierte Protokollierung

Dieser ist ziemlich einfach, aber wenn der Großteil Ihres Datenverkehrs über einen einzigen Dienst läuft, ist es einfach, die Protokolle zu überprüfen. Das Zugriffsprotokoll von NGINX enthält viele nützliche Informationen über Ihren Datenverkehr, und obwohl es die Fähigkeiten eines Dienstes wie Google Analytics nicht übertrifft, sind es großartige Informationen, die Sie haben sollten.

★ ★ ★ ★ ★