[Herausgeber – Dieser Beitrag wurde aktualisiert, um die ab Juni 2021 von NGINX Plus und den Azure-Lastausgleichsdiensten unterstützten Funktionen widerzuspiegeln. Es bezieht sich auch auf die NGINX Plus API , die das in der Originalversion des Beitrags erwähnte separate dynamische Konfigurationsmodul ersetzt und veraltet.]
Kunden, die Microsoft Azure verwenden, haben drei Optionen für den Lastenausgleich: NGINX Plus , die Azure-Lastausgleichsdienste oder NGINX Plus in Verbindung mit den Azure-Lastausgleichsdiensten. Dieser Beitrag soll Ihnen genügend Informationen für eine Entscheidung geben und zeigt Ihnen außerdem, wie Sie durch die Verwendung von NGINX Plus mit Azure Load Balancer einen hochverfügbaren HTTP-Load Balancer mit umfassender Layer 7-Funktionalität erhalten.
Microsoft Azure bietet seinen Benutzern zwei Möglichkeiten für einen Lastenausgleich: Azure Load Balancer für grundlegenden TCP/UDP-Lastenausgleich (auf Ebene 4, der Netzwerkebene) und Azure Application Gateway für HTTP/HTTPS-Lastenausgleich (auf Ebene 7, der Anwendungsebene) . Obwohl diese Lösungen für einfache Anwendungsfälle geeignet sind, bieten sie nicht viele der Funktionen, die standardmäßig bei NGINX Plus enthalten sind.
Hier ist ein allgemeiner Vergleich zwischen NGINX Plus und den Azure-Lastausgleichsangeboten:
Besonderheit | NGINX Plus | Azure-Lastenausgleich | Azure-Anwendungsgateway | NGINX Plus und Azure Load Balancer |
---|---|---|---|---|
HTTP- und HTTPS-Lastenausgleich | ✅ | ❌ | ✅ | ✅ |
HTTP/2-Lastenausgleich | ✅ | ❌ | ✅ | ✅ |
WebSocket-Lastausgleich | ✅ | ❌ | ✅ | ✅ |
TCP/UDP-Lastausgleich | ✅ | ✅ | ❌ | ✅ |
Lastausgleichsmethoden | Fortschrittlich | Einfach | Einfach | Fortschrittlich |
Sitzungspersistenz | Fortschrittlich | Einfach | Einfach | Fortschrittlich |
HTTP-Integritätsprüfungen | Fortschrittlich | Einfach | Einfach | Fortschrittlich |
TCP/UDP-Integritätsprüfungen | Fortschrittlich | Einfach | ❌ | Fortschrittlich |
SSL/TLS-Terminierung | ✅ | ❌ | ✅ | ✅ |
Raten- und Verbindungslimits | ✅ | ❌ | ❌ | ✅ |
URL-Umschreibung und Weiterleitung | ✅ | ❌ | ✅ | ✅ |
Zuordnung von URL-Anforderungen | ✅ | ❌ | ✅ | ✅ |
Aktiv/aktiver NGINX Plus-Cluster | ❌ | ❌ | ❌ | ✅ |
Sehen wir uns nun einige der Unterschiede zwischen NGINX Plus und den Azure-Lastausgleichsdiensten, ihre einzigartigen Funktionen und die Zusammenarbeit von NGINX Plus und Azure-Lastausgleichsdiensten an.
NGINX Plus bietet neben der standardmäßigen Round-Robin-Methode mehrere Möglichkeiten zum Lastausgleich :
„Quell-
IP-
Adresse“
und „Quellport
“
oder der URI entsprechen.„Zwei
“ enthalten ist, wählt NGINX Plus zwei Server nach dem Zufallsprinzip aus und wählt dann zwischen ihnen entweder den Algorithmus „Least Connections“ (Standard) oder „Least Time“, je nach Konfiguration.Alle Methoden können erweitert werden, indem jedem Backend-Server unterschiedliche Gewichtungswerte zugewiesen werden. Einzelheiten zu den Methoden finden Sie im NGINX Plus Admin Guide.
Azure Load Balancer bietet eine Lastenausgleichsmethode namens Hash , die standardmäßig einen Schlüssel basierend auf den Headerfeldern Quell-
IP-
Adresse
, Quellport
, Ziel-
IP-
Adresse
, Zielport
und
Protokoll
verwendet ,
um einen Back-End-Server auszuwählen.
Azure Application Gateway bietet nur eine Round‑Robin‑ Methode.
Sitzungspersistenz , auch als Sticky Sessions oder Sitzungsaffinität bezeichnet, wird benötigt, wenn eine Anwendung erfordert, dass alle Anfragen eines bestimmten Clients weiterhin an denselben Backend-Server gesendet werden, weil der Clientstatus nicht zwischen den Backend-Servern geteilt wird.
NGINX Plus unterstützt drei erweiterte Methoden zur Sitzungspersistenz :
NGINX Plus bietet außerdem zwei grundlegende Methoden zur Sitzungspersistenz, die als zwei der oben beschriebenen Methoden zum Lastenausgleich implementiert sind:
,
beispielsweise Quell
-IP
-Adresse
und Quellport
oder der URI, bestimmt.Azure Load Balancer unterstützt das Äquivalent der NGINX Plus-Hash-Methode, obwohl der Schlüssel auf bestimmte Kombinationen der Headerfelder „Quell-
IP-
Adresse“
, „Quellport
“
, „Ziel-
IP-
Adresse“
, „Zielport
“
und „Protokoll“
beschränkt ist.
Azure Application Gateway unterstützt das Äquivalent der Sticky Cookie-Methode von NGINX Plus mit den folgenden Einschränkungen: Sie können den Namen des Cookies, sein Ablaufdatum, die Domäne, den Pfad oder die Cookieattribute „HttpOnly“
oder „Secure“
nicht konfigurieren.
Notiz: Wenn Sie Azure Load Balancer, die NGINX Plus IP-Hash-Methode oder die NGINX Plus-Hash-Methode mit im Schlüssel enthaltener Quell
-IP
-Adresse
verwenden, funktioniert die Sitzungspersistenz nur dann ordnungsgemäß, wenn die IP-Adresse des Clients während der gesamten Sitzung gleich bleibt. Dies ist nicht immer der Fall, beispielsweise wenn ein mobiler Client von einem WLAN-Netzwerk zu einem Mobilfunknetzwerk wechselt. Um sicherzustellen, dass die Anfragen weiterhin denselben Backend-Server erreichen, ist es besser, eine der oben aufgeführten erweiterten Methoden zur Sitzungspersistenz zu verwenden.
Azure Load Balancer und Azure Application Gateway unterstützen grundlegende Anwendungsintegritätsprüfungen . Sie können die URL angeben, die der Load Balancer anfordert. Er betrachtet den Backend-Server als intakt, wenn er die erwartete HTTP-Nachricht empfängt.200
Rückgabecode. Sie können die Häufigkeit der Integritätsprüfung und die Zeitüberschreitung angeben, bevor der Server als fehlerhaft betrachtet wird. Mit Azure Application Gateway können Sie auch den erwarteten Antwortcode anpassen und mit dem Inhalt des Antworttexts abgleichen.
NGINX Plus erweitert diese Funktionalität um erweiterte Integritätsprüfungen . Zusätzlich zur Angabe der zu verwendenden URL können Sie mit NGINX Plus Header in die Anfrage einfügen, nach verschiedenen Antwortcodes suchen und sowohl die Header als auch den Text der Antwort untersuchen.
Eine nützliche zugehörige Funktion in NGINX Plus ist der langsame Start . NGINX Plus steigert die Last langsam auf einen neuen oder kürzlich wiederhergestellten Server, damit dieser nicht durch Verbindungen überlastet wird. Dies ist nützlich, wenn Ihre Backend-Server eine gewisse Aufwärmzeit benötigen und ausfallen, wenn ihnen ihr voller Verkehrsanteil zugewiesen wird, sobald sie als fehlerfrei angezeigt werden.
NGINX Plus unterstützt auch Integritätsprüfungen für TCP- und UDP -Server, sodass Sie eine zu sendende Zeichenfolge und eine Zeichenfolge angeben können, nach der in der Antwort gesucht werden soll.
Azure Load Balancer unterstützt TCP-Integritätsprüfungen, bietet dieses Überwachungsniveau jedoch nicht.
NGINX Plus unterstützt die SSL/TLS-Terminierung , ebenso wie Azure Application Gateway . Azure Load Balancer tut dies nicht.
Mit NGINX Plus können Sie mehrere Limits konfigurieren, um den Datenverkehr zu und von Ihrer NGINX Plus-Instanz zu steuern. Dazu gehören die Begrenzung eingehender Verbindungen , der Verbindungen zu Backend-Knoten , der Rate eingehender Anfragen und der Datenübertragungsrate von NGINX Plus an Clients.
Azure Application Gateway und Azure Load Balancer unterstützen keine Raten- oder Verbindungslimits. Sie können jedoch andere Azure-Dienste verwenden, um die Ratenbegrenzung zu konfigurieren und zu aktivieren.
NGINX Plus, Azure Application Gateway und Azure Load Balancer unterstützen Folgendes:
In Verbindung mit Azure Load Balancer und Azure Traffic Manager wird NGINX Plus zu einer hochverfügbaren Load Balancer-Lösung mit umfassender Layer 7-Funktionalität.
Indem Sie Azure Load Balancer zum Lastenausgleich zwischen NGINX Plus-Instanzen in einem Verfügbarkeitssatz verwenden, erstellen Sie einen hochverfügbaren Load Balancer innerhalb einer Region.
Sie können die automatische Skalierung von NGINX Plus-Instanzen basierend auf der durchschnittlichen CPU-Auslastung einrichten. Dies ist möglich, indem Sie Verfügbarkeitsgruppen im Azure Cloud Service erstellen, der Ihre NGINX Plus-Instanzen hostet. Sie müssen sich um die Synchronisierung der NGINX Plus-Konfigurationsdateien kümmern.
Sie können auch eine automatische Skalierung Ihrer Backend-Instanzen basierend auf der durchschnittlichen CPU-Auslastung einrichten. Dies ist möglich, indem Sie Verfügbarkeitsgruppen im Azure-Clouddienst erstellen, der Ihre Back-End-Instanzen hostet. Sie müssen sich darum kümmern, Backend-Instanzen zur NGINX Plus-Konfiguration hinzuzufügen oder daraus zu entfernen, was mit der NGINX Plus-API möglich ist.
Um Updates der NGINX Plus-Konfiguration zu automatisieren (entweder in Kombination mit Verfügbarkeitsgruppen oder bei alleiniger Verwendung von NGINX Plus), können Sie ein Service-Discovery-System in NGINX Plus integrieren, entweder über die NGINX Plus-API oder über DNS, wenn das System über eine DNS-Schnittstelle verfügt. Schauen Sie sich unsere Blogbeiträge zur Verwendung von NGINX Plus mit beliebten Service-Discovery-Systemen an:
Für eine global verteilte Umgebung können Sie Azure Traffic Manager verwenden, um den Datenverkehr von Clients auf viele Regionen zu verteilen.
Azure Load Balancer und Application Gateway werden von Azure Cloud verwaltet und bieten beide eine hochverfügbare Lastenausgleichslösung.
Eine Funktion von Azure Load Balancer, die in NGINX Plus nicht verfügbar ist, ist Source-NAT , bei dem ausgehender Datenverkehr von Back-End-Instanzen dieselbe Quell-IP-Adresse wie der Load Balancer hat.
Azure Load Balancer bietet eine automatische Neukonfiguration bei Verwendung der Autoscaling-Funktion von Azure Cloud.
Wenn Ihre Anforderungen an den Lastenausgleich einfach sind, können die Azure-Angebote zum Lastenausgleich eine gute Lösung darstellen. Wenn die Anforderungen komplexer werden, ist NGINX Plus eine gute Wahl. Sie können NGINX Plus entweder allein oder in Verbindung mit Azure Load Balancer für die Hochverfügbarkeit von NGINX Plus-Instanzen verwenden.
Um NGINX Plus auf Microsoft Azure auszuprobieren, starten Sie noch heute Ihre kostenlose 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen .
„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."