NGINX Plus lässt sich in einem Aktiv-Passiv- oder Aktiv-Aktiv-Hochverfügbarkeits-Cluster (HA) konfigurieren, um die Anwendungsverfügbarkeit zu gewährleisten. In einem Aktiv-Passiv-HA-Cluster, der weiter unten beschrieben wird, gibt es zwei NGINX Plus-Server: einen primären Server, der den Datenverkehr aktiv verarbeitet, und einen Backup-Server, der den Zustand des primären Servers überwacht und bei einem Ausfall des aktuellen primären Servers automatisch dessen Aufgaben übernimmt. In einem aktiv-aktiv HA-Cluster wickeln beide Server den Datenverkehr ab. Aktiv-aktiv-aktiv und andere N+1-Konfigurationen werden ebenfalls unterstützt.
Zusätzlich zum automatischen Failover für die Hochverfügbarkeit in einem Cluster unterstützt NGINX Plus die Konfigurationssynchronisation, sodass die auf einem NGINX Plus-Server in einem Cluster erstellte Konfiguration auf die anderen Server übertragen wird. Statusteilung wird ebenfalls unterstützt, sodass Funktionen, die auf Zustandsinformationen zugreifen – wie Sticky-Learn-Sitzungspersistenz, Ratenbegrenzung und Key-Value-Stores – in einer Cluster-Umgebung ordnungsgemäß funktionieren.
Die Funktionen für den modernen Lastenausgleich und die Überwachung des Anwendungszustands von NGINX Plus bieten Ausfallsicherheit und Skalierbarkeit für Ihre vorgelagerten Anwendungsserver. Die Konfiguration von NGINX Plus in einem HA-Cluster bietet weitere Ausfallsicherheit für Anwendungen und eliminiert einzelne Fehlerpunkte im Anwendungsstapel. Wenn ein NGINX Plus-Server nicht mehr in der Lage ist, den Datenverkehr zu verarbeiten, übernimmt ein anderer Server.
Sie können die Konfiguration auch so erweitern, dass mehrere aktiv-passiv NGINX Plus-Instanzen unterstützt werden, um so ein höheres Maß an Redundanz zu erreichen. Das kann auch hilfreich sein, wenn Sie mehr Durchsatz benötigen, als ein einzelnes Aktiv-Passiv-Paar bieten kann.
Die NGINX Plus Aktiv-Passiv-HA-Lösung basiert auf keepalived
, das seinerseits eine Implementierung des Virtual Router Redundancy Protocol (VRRP) verwendet. Nachdem Sie das Paket nginx-ha-keepalived installiert und keepalived
konfiguriert haben, wird es als separater Prozess auf jedem NGINX Plus-Server im Cluster ausgeführt und verwaltet eine gemeinsam genutzte virtuelle IP-Adresse. Die virtuelle IP-Adresse ist die IP-Adresse, die nachgelagerten Clients bekannt gegeben wird, zum Beispiel über einen DNS-Eintrag für Ihren Dienst oder Ihre Anwendung.
Basierend auf der Ursprungskonfiguration bestimmt keepalived
einen Primärserver und weist ihm die virtuelle IP-Adresse zu. Der Primärserver sendet in regelmäßigen Abständen VRRP-Ankündigungsnachrichten an den Backup-Server, um zu bestätigen, dass sein Zustand in Ordnung ist und überprüft hat, dass sowohl keepalived
als auch NGINX Plus ausgeführt werden. Wenn der Backup-Server drei aufeinander folgende Ankündigungen nicht erhält, wird er zum neuen Primärserver und übernimmt die virtuelle IP-Adresse.
Die Aktivierung von NGINX Plus HA ist sehr einfach. Sie ist im Paket nginx-ha-keepalived implementiert, das Sie aus dem NGINX Plus-Repository installieren. Für Debian- und Ubuntu-Systeme lautet der Befehl beispielsweise:
$ apt-get install nginx-ha-keepalived
Installieren Sie das Paket auf jedem NGINX Plus-Server im HA-Cluster und führen Sie dann das mitgelieferte Skript nginx-ha-setup aus, um die HA-Software zu konfigurieren und auszuführen. Eine vollständige Anleitung finden Sie im NGINX Plus Administratorleitfaden.
HA-Failover findet statt, wenn der primäre NGINX Plus-Server aufgrund eines katastrophalen Zustands, wie z. B. Hardware-Ausfall, Betriebssystemabschaltung oder Terminierung der NGINX Plus-Software, nicht mehr funktioniert. Interne Zustandsprüfungen können bei Bedarf erweitert werden, um weitere Ausfallsituationen zu erkennen.
Sie können die Konfiguration zwischen den NGINX Plus-Servern in einem Cluster synchronisieren, sodass die Server nicht mehr einzeln verwaltet werden müssen. Dafür müssen Sie nur einfache Änderungen an einem bestimmten „Primärserver“ vornehmen und diese Änderungen dann auf die anderen Server im Cluster übertragen.
Diese Funktion wurde in NGINX Plus R12 eingeführt und ist im nginx-sync
-Paket implementiert, das über das NGINX Plus-Repository zur Verfügung steht. Der Befehl für Debian- und Ubuntu-Systeme lautet:
$ apt-get install nginx-sync
Weitere Informationen finden Sie im NGINX Plus Administratorleitfaden.
Die NGINX Plus-Server in einem Cluster können Statusinformationen gemeinsam nutzen, wie im Modul „Zone Synchronisation“ (eingeführt in NGIN Plus R15) implementiert. Dadurch können Funktionen, die den Status beibehalten, in einer Cluster-Umgebung ordnungsgemäß ausgeführt werden. Die folgenden NGINX Plus-Funktionen sind clusterfähig:
Weitere Informationen finden Sie im NGINX Plus Administratorleitfaden und in den Referenzdokumenten für das zone_sync-Modul.
Die keepalived
-basierte HA-Lösung funktioniert nur in lokalen Implementierungen von NGINX Plus. Aber es stehen auch HA-Lösungen für Cloud-Umgebungen bereit:
keepalived
-Homepage – Details zur Erweiterung und Anpassung der keepalived
-Konfiguration