Nginx-Lastausgleichskonfiguration, automatischer Umschaltmodus bei Ausfallzeiten

Nginx-Lastausgleichskonfiguration, automatischer Umschaltmodus bei Ausfallzeiten

Streng genommen verfügt nginx nicht über eine Integritätsprüfung für die Lastausgleichs-Backend-Knoten. Diese kann jedoch über die entsprechenden Anweisungen in den Standardmodulen ngx_http_proxy_module und ngx_http_upstream_module durchgeführt werden, um bei einem Ausfall eines Backend-Knotens automatisch zu einem fehlerfreien Knoten zu wechseln und Zugriff zu gewähren.

Nachfolgend sind die entsprechenden Anweisungen in diesen beiden Modulen aufgeführt:

Syntax: proxy_connect_timeout-Zeit;

Standardwert: proxy_connect_timeout 60s;

Legen Sie das Timeout für die Herstellung einer Verbindung mit dem Backend-Server fest. Es ist zu beachten, dass dieses Timeout im Allgemeinen nicht länger als 75 Sekunden sein dürfte.

Syntax: proxy_read_timeout-Zeit;

Standardwert: proxy_read_timeout 60s;

Definiert das Timeout für das Lesen einer Antwort von einem Backend-Server. Dieses Timeout bezieht sich auf das maximale Zeitintervall zwischen zwei aufeinanderfolgenden Lesevorgängen und nicht auf die maximale Zeit bis zum Abschluss der gesamten Antwortübertragung. Wenn der Backend-Server innerhalb der Timeout-Zeit keine Daten überträgt, wird die Verbindung geschlossen.

Verwenden Sie das Modul nginx_upstream_check_module, um Integritätsprüfungen an Backend-Knoten durchzuführen

Dies ist das vom technischen Team von Taobao entwickelte Nginx-Modul. Sie können die offizielle Website von Taobao tengine http://tengine.taobao.org besuchen, um diese Version von nginx zu erhalten.

Fügen Sie in der Konfigurationsdatei nginx.conf wie folgt eine Integritätsprüfung zum Upstream hinzu:

Upstreamname {
  Server 192.168.0.21:80;
  Server 192.168.0.22:80;
  Prüfintervall=3000 Anstieg=2 Abfall=5 Timeout=1000 Typ=http;
}

Die obige Konfiguration bedeutet, dass alle Knoten im Lastausgleichseintrag Name alle 3 Sekunden überprüft werden, und wenn die Anforderung zweimal normal ist, wird sie markiert

Der Realserver-Status ist aktiv. Wenn die Erkennung fünfmal fehlschlägt, wird der Realserver-Status als inaktiv markiert und die Zeitüberschreitung beträgt 1 Sekunde.

Hier sind die Bedeutungen der vom Modul nginx_upstream_check_module unterstützten Anweisungen:

Syntax: Prüfintervall=Millisekunden [Abfall=Anzahl] [Anstieg=Anzahl] [Timeout=Millisekunden] [Standard_Abfall=Wahr|Falsch] [Typ=TCP|http|Ssl_hello|MySQL|AJP] [Port=Prüfport]

Standard: Wenn kein Parameter konfiguriert ist, lautet der Standardwert:

Intervall=30000 Abfall=5 Anstieg=2 Timeout=1000 Standard_Abw=true Typ=TCP

Kontext: Upstream

Mit diesem Befehl kann die Integritätsprüffunktion des Backend-Servers aktiviert werden.

Die Bedeutung der Parameter nach dem Befehl ist:

Intervall: Das Intervall der an das Backend gesendeten Integritätsprüfpakete.

fall(fall_count): Wenn die Anzahl der aufeinanderfolgenden Fehler fall_count erreicht, gilt der Server als ausgefallen.

rise(rise_count): Wenn die Anzahl der aufeinanderfolgenden Erfolge rise_count erreicht, gilt der Server als aktiv.

Timeout: Die Zeitüberschreitungsdauer für die Backend-Integritätsanforderung.

default_down: Legt den Anfangsstatus des Servers fest. Wenn der Wert „true“ ist, bedeutet dies, dass der Server standardmäßig „down“ ist. Wenn der Wert „false“ ist, bedeutet dies, dass der Server „up“ ist. Der Standardwert ist „true“, was bedeutet, dass der Server zunächst als nicht verfügbar gilt und erst dann als fehlerfrei angesehen wird, wenn das Integritätsprüfpaket eine bestimmte Anzahl erfolgreicher Prüfungen erreicht.

Typ: Der Typ des Integritätsprüfpakets. Derzeit werden die folgenden Typen unterstützt:

tcp: Eine einfache TCP-Verbindung. Wenn die Verbindung erfolgreich ist, bedeutet dies, dass das Backend normal ist.

ssl_hello: Sendet ein erstes SSL-Hello-Paket und empfängt ein SSL-Hello-Paket vom Server.

http: Senden Sie eine HTTP-Anfrage und ermitteln Sie anhand des Status des Backend-Antwortpakets, ob das Backend aktiv ist.

mysql: Stellen Sie eine Verbindung zum MySQL-Server her und ermitteln Sie, ob das Backend aktiv ist, indem Sie das Begrüßungspaket vom Server empfangen.

ajp: Sendet Cping-Pakete des AJP-Protokolls an das Backend und ermittelt durch den Empfang von Cpong-Paketen, ob das Backend aktiv ist.

Port: Gibt den Prüfport des Backend-Servers an.

Sie können einen Backend-Server-Port angeben, der sich vom eigentlichen Dienst unterscheidet. Wenn das Backend beispielsweise eine Anwendung auf Port 443 bereitstellt, können Sie den Status von Port 80 überprüfen, um den Zustand des Backends zu ermitteln.

Der Standardwert ist 0, was bedeutet, dass es sich um den gleichen Port handelt, der vom Backend-Server zum Bereitstellen echter Dienste verwendet wird.

Diese Option erschien in Tengine-1.4.0.

Zusätzliches Wissen: Nginx Timeout automatische Neuübertragung

1. Phänomen:

Wenn Sie nginx als Lastlader verwenden und die URL-Antwort eine bestimmte Zeit (normalerweise 10 Minuten) überschreitet, wird die Anforderung automatisch an einen anderen Computer erneut gesendet.

2. Gründe:

In nignxi ist die automatische erneute Übertragung nach einem Timeout standardmäßig aktiviert und muss deaktiviert werden.

3. Lösung:

Konfiguration in nginx hinzufügen:

proxy_next_upstream aus;

Der obige Artikel über die Konfiguration des Nginx-Lastausgleichs und die automatische Umschaltmethode während der Ausfallzeit ist alles, was ich mit Ihnen teilen möchte. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • 4 Konfigurationsbeispiele für den Nginx-Lastausgleich
  • Einfache Konfigurationsmethode für die Nginx-Lastausgleichskonfiguration
  • 5 Möglichkeiten zum Konfigurieren des Nginx-Lastausgleichs
  • Analyse des Konfigurationsprozesses für den Lastenausgleich im Nginx-Cluster
  • Einfaches Lastenausgleichskonfigurationsbeispiel für Nginx
  • Detaillierte Erläuterung der Linux-Systemkonfiguration Nginx Load Balancing
  • Einfache Konfigurationsmethode für den Nginx-Lastausgleich
  • So konfigurieren Sie den Nginx-Lastausgleich
  • Super detaillierte Nginx-Lastausgleichskonfiguration

<<:  Lösen Sie das Problem der Verwendung des Swiper-Plugins in Vue

>>:  Detaillierte Erklärung, warum die langsame Abfrageprotokollzeit von MySQL 5.7 8 Stunden hinter der Systemzeit liegt

Artikel empfehlen

Implementierungsbeispiel zum Hochladen mehrerer Anhänge in Vue

Inhaltsverzeichnis Vorwort Kerncode Datei zeigt e...

Ein Designer beschwert sich erneut über die offizielle Website von Hammer

Letztes Jahr war der offene Brief ein großer Erfo...

Lösen Sie das Problem verstümmelter Daten bei der MySQL-Datenbankmigration

Unter den Anweisungen meines Vorgesetzten übernah...

7 Fähigkeiten, die großartige Grafikdesigner beherrschen müssen

1》Seien Sie gut im Webdesign 2》Wissen, wie man Web...

Beispielcode zum automatischen Umbrechen des Pre-Tags

Das Pre-Element definiert vorformatierten Text. In...