BLOG | NGINX

Reverse-Proxy mit NGINX Plus

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Rick Nelson Miniaturbild
Rick Nelson
Veröffentlicht am 10. April 2014

NGINX hat sich zu Recht einen Ruf als Webserver mit sehr hoher Leistung erworben. Ich glaube, vielen Leuten ist klar, dass NGINX auch als Reverse-Proxy verwendet werden kann, aber ihnen ist vielleicht nicht bewusst, was für ein leistungsstarker Reverse-Proxy es ist.

Was ist ein Reverse-Proxy?

Lassen Sie uns zunächst einen Schritt zurückgehen und fragen: Was ist ein Proxyserver?  Ich denke, Wikipedia hat eine gute Definition:

[Ein] Proxyserver ist ein Server (ein Computersystem oder eine Anwendung), der als Vermittler für Anfragen von Clients fungiert, die Ressourcen von anderen Servern suchen.

Ein Proxyserver befindet sich also zwischen einem Client und dem eigentlichen Server, der die vom Client gesuchten Daten hostet. Für den Client scheint der Proxyserver der eigentliche Backend-Server zu sein, und für den Backend-Server sieht der Proxyserver wie ein Client aus. Um einen Reverse-Proxy-Server zu definieren, gehen wir zurück zu Wikipedia :

[Ein] Reverse-Proxy ist eine Art Proxyserver, der im Auftrag eines Clients Ressourcen von einem oder mehreren Servern abruft.

Der Unterschied besteht darin, dass ein Proxyserver zwischen den Clients und nur einem Backend-Server sitzt, während ein Reverse-Proxyserver vor einem oder mehreren Backend-Servern sitzt und entscheidet, welcher von ihnen für jede Anfrage verwendet wird.

Welche Vorteile bietet die Verwendung eines Reverse-Proxys?

Warum sollten Sie einen Reverse-Proxy-Server verwenden?  Es gibt eine Reihe von Vorteilen:

  • Gleichzeitigkeit – Internetanwendungen umfassen häufig eine große Anzahl von Clients, von denen jeder mehrere Verbindungen öffnet, was zu einer sehr großen Anzahl von Verbindungen mit den Back-End-Servern führt. Viele Webserver und Anwendungsserver können eine große Anzahl von Verbindungen nicht gut verarbeiten (eine Ausnahme stellt NGINX als Webserver dar). Daher kann das Hinzufügen eines Reverse-Proxys, der mehrere Verbindungen besser verarbeiten kann, zu einer deutlichen Verbesserung der Back-End-Server-Leistung führen.
  • Ausfallsicherheit: Wenn Clients eine direkte Verbindung zu einem Back-End-Server herstellen und dieser ausfällt, schlagen die Anforderungen aller Clients fehl, die aktuell mit dem Server verbunden sind (oder eine Verbindung herzustellen versuchen). Ein Reverse-Proxy-Server kann den Zustand von Backend-Servern überwachen und das Senden von Anfragen an einen ausgefallenen Server beenden, bis dieser wieder betriebsbereit ist. Für die Clients wird kein Fehler angezeigt, da der Reverse-Proxy ihre Anfragen automatisch an die noch betriebsbereiten Backend-Server sendet.
  • Skalierbarkeit – Da ein Reverseproxy das einzige „öffentliche Gesicht“ für die Gruppe der Backend-Server ist, können Sie als Reaktion auf sich ändernde Verkehrslast Server hinzufügen und entfernen.
  • Layer-7-Routing – Ein Reverse-Proxy sieht den an alle Server gerichteten Datenverkehr und kann intelligente Entscheidungen darüber treffen, wohin jede Anfrage gesendet wird, und Anfragen und Antworten nach Bedarf ändern. Es kann Routing-Entscheidungen basierend auf einem bestimmten HTTP-Header in der Anfrage, einem Teil einer URL, dem geografischen Standort des Clients usw. treffen.
  • Caching – Ein Reverseproxy eignet sich hervorragend zum Caching. Normalerweise ist es viel effizienter, Inhalte dort zwischenzuspeichern, als alle Anfragen an Backend-Server zu senden und jeden Backend-Server seinen eigenen Cache erstellen zu lassen.
  • Andere Funktionen – Indem er den Backend-Servern vorgeschaltet ist, kann ein Reverse-Proxy auch andere Funktionen ausführen, wie etwa Traffic Shaping basierend auf Bandbreite oder Anforderungsrate, Verbindungsbegrenzung, Integration mit verschiedenen Autorisierungsschemata, Aktivitätsüberwachung und vieles mehr.

NGINX Plus als Reverse-Proxy verwenden

NGINX Plus erweitert die bekannten Webserverfunktionen von NGINX Open Source um noch mehr Funktionen und macht NGINX Plus zu einem voll funktionsfähigen Application Delivery Controller (ADC), der proprietäre Hardwaregeräte ersetzen kann.

Im Folgenden sind nur einige der in NGINX Plus verfügbaren Funktionen aufgeführt.

Lastenausgleich

Es stehen mehrere Algorithmen zum Lastausgleich zur Auswahl, sowohl gewichtete als auch ungewichtete. Sitzungspersistenz wird ebenfalls unterstützt. NGINX Plus kann den Lastenausgleich für HTTP, HTTPS, WebSocket, FastCGI, Memcached, SCGI, SPDY [ersetzt durch HTTP/2, bei dem NGINX Plus ebenfalls den Lastenausgleich durchführt] und uwsgi durchführen. Mehr lesen .

Gesundheitschecks

Sowohl die passive als auch die aktive Überwachung der Integrität des Backend-Servers wird unterstützt. Wenn NGINX Plus keine Verbindung zu einem Knoten herstellen kann, wird dieser Knoten als ausgefallen markiert. Aktive Integritätsprüfungen können auch so konfiguriert werden, dass sie regelmäßig für Backend-Knoten ausgeführt werden. Darüber hinaus kann die Slow-Start-Funktion verwendet werden, sodass NGINX Plus den Datenverkehr zu einem gerade online gegangenen Knoten langsam steigert, um eine Überlastung durch einen plötzlichen Datenverkehr zu vermeiden. Mehr lesen .

Weiterleitung von Anfragen

Der Datenverkehr kann auf Grundlage beliebiger Teile einer Anforderung weitergeleitet werden, beispielsweise der Client-IP-Adresse, des Hostnamens, der URI, der Abfragezeichenfolge, der Header usw.

Umschreiben von Anforderungen und Antworten

Jeder Teil einer Anfrage oder Antwort kann geändert werden, einschließlich Header, Text und URI. NGINX Plus kann auch Header hinzufügen und löschen. Mehr lesen .

Zwischenspeicherung

Antworten können zwischengespeichert werden und Sie können die zwischenzuspeichernden Inhaltstypen und deren Dauer konfigurieren. Sie können auch Elemente aus dem Cache löschen. Mehr lesen .

Kompression

Gzip-Komprimierung wird unterstützt, mit fein abgestufter Kontrolle darüber, welcher Inhalt komprimiert werden soll und wann die Komprimierung verwendet werden soll. Mehr lesen .

SSL/TLS-Verarbeitung

SSL/TLS-Entschlüsselung und -Verschlüsselung werden unterstützt und die Entschlüsselung kann für viele Domänennamen mithilfe verschiedener Zertifikate durchgeführt werden. Mehr lesen .

Live-Aktivitätsüberwachung und -Protokollierung

Im JSON-Format codierte NGINX Plus-Statistiken sind über eine einfache HTTP-Anfrage verfügbar. Zum Anzeigen der Statistiken steht eine Dashboard-Webseite zur Verfügung. Alternativ können Sie sie auch an benutzerdefinierte oder Drittanbieter-Überwachungstools weitergeben. Benutzerdefiniert formatierte Protokolle können sowohl für die lokale Protokollierung als auch für den Export ins Syslog konfiguriert werden. Mehr lesen .

Und vieles mehr

NGINX verfügt über viele weitere Funktionen, wie z. B. Unterstützung für Video-Streaming, Mail-Proxy-Unterstützung, GeoIP-Unterstützung, ordnungsgemäße Neustarts und Upgrades ohne Ausfallzeiten, Traffic Shaping, Verbindungsbegrenzung und vieles mehr. Weitere Informationen finden Sie unter nginx.com und nginx.org .


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."