Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Detaillierte Beschreibung der Gesundheitsprüfung und der automatischen Fehlerwiederherstellung des Nginx-Servers

Detaillierte Beschreibung der Gesundheitsprüfung und der automatischen Fehlerwiederherstellung des Nginx-Servers

PHPz
PHPzOriginal
2023-08-05 23:40:443668Durchsuche

Detaillierte Beschreibung der Gesundheitsprüfung und der automatischen Fehlerwiederherstellung des Nginx-Servers

Einführung:
In heutigen Internetanwendungen sind hohe Parallelität und hohe Verfügbarkeit sehr wichtig. Um die Stabilität des Systems sicherzustellen, müssen wir den Zustand des Servers überwachen und überprüfen und automatisch eine Fehlerbehebung durchführen. In diesem Artikel wird ausführlich erläutert, wie der Nginx-Server für die Gesundheitsprüfung und die automatische Wiederherstellung nach Fehlern verwendet wird, und es werden relevante Codebeispiele aufgeführt.

  1. Nginx-Gesundheitsprüfungsprinzip
    In der Nginx-Konfigurationsdatei können wir über das Upstream-Modul eine Gruppe von Backend-Servern definieren, und Nginx weist Anforderungen gemäß einem bestimmten Algorithmus verschiedenen Servern zu. Während dieses Prozesses kann Nginx die Verteilung der Anfragen dynamisch anpassen, indem es den Zustand des Backend-Servers überprüft. Es gibt zwei häufig verwendete Methoden zur Gesundheitsprüfung:

1.1 Aktive Gesundheitsprüfung:
Nginx sendet regelmäßig Anfragen an den Backend-Server und beurteilt dann den Gesundheitszustand des Servers anhand des zurückgegebenen Statuscodes. Wenn der zurückgegebene Statuscode angibt, dass der Server normal ist, fügt Nginx den Server zur Liste der verfügbaren Server hinzu. Wenn der zurückgegebene Statuscode angibt, dass der Server abnormal ist, entfernt Nginx den Server aus der Liste der verfügbaren Server.

1.2 Passive Gesundheitsprüfung:
Wenn Nginx eine Anfrage an den Backend-Server sendet und die Verbindung abläuft oder die Anfrage fehlschlägt, beurteilt Nginx den Server als nicht verfügbaren Server und entfernt ihn aus der Liste der verfügbaren Server. Wenn eine neue Anfrage eintrifft, versucht Nginx, eine Verbindung zu anderen verfügbaren Servern herzustellen.

  1. Nginx-Gesundheitsprüfungskonfigurationsbeispiel
    In der Nginx-Konfigurationsdatei können wir die Gesundheitsprüfungsfunktion über den Health_check-Parameter im Upstream-Modul aktivieren und zugehörige Gesundheitsprüfungselemente konfigurieren. Das Folgende ist eine Beispielkonfiguration:

http {

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
    
    # 开启健康检查功能
    health_check;
    
    # 配置健康检查项
    health_check_timeout 3s;
    health_check_interval 10s;
    health_check_http_2xx;
    health_check_http_3xx;
}

server {
    listen 80;
    
    location / {
        proxy_pass http://backend;
    }
}

}

In der obigen Konfiguration haben wir eine Upstream-Gruppe namens Backend definiert und drei Backend-Server konfiguriert. Durch Setzen des Parameters „health_check“ auf „on“ wird die Funktion „Health Check“ aktiviert. Die spezifische Konfiguration der Health-Check-Elemente ist wie folgt:

  • health_check_timeout: Legen Sie das Timeout für den Health-Check fest.
  • health_check_interval: Legen Sie das Intervall für die Gesundheitsprüfung fest.
  • health_check_http_2xx: Wenn der zurückgegebene Statuscode 2xx ist (z. B. 200), bedeutet dies, dass der Server normal ist.
  • health_check_http_3xx: Wenn der zurückgegebene Statuscode 3xx ist (z. B. 301, 302), bedeutet dies, dass der Server normal ist.
  1. Konfigurationsbeispiel für die automatische Wiederherstellung nach Fehlern von Nginx
    Zusätzlich zur Gesundheitsprüfung bietet Nginx auch eine Funktion zur automatischen Wiederherstellung nach Fehlern. Wenn festgestellt wird, dass ein Backend-Server nicht verfügbar ist, entfernt Nginx ihn automatisch aus der Liste der verfügbaren Server und führt nach einer gewissen Zeit erneut eine Gesundheitsprüfung durch. Wenn der Backend-Server die Gesundheitsprüfung besteht, fügt Nginx ihn erneut zur Liste der verfügbaren Server hinzu, um eine automatische Wiederherstellung nach Fehlern zu erreichen. Das Folgende ist eine Beispielkonfiguration:

http {

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
    
    # 开启健康检查和自动故障恢复功能
    health_check;
    max_fails 3;
    fail_timeout 30s;
    
    # 配置健康检查项
    health_check_timeout 3s;
    health_check_interval 10s;
    health_check_http_2xx;
    health_check_http_3xx;
}

server {
    listen 80;
    
    location / {
        proxy_pass http://backend;
    }
}

}

In der obigen Konfiguration haben wir zwei Parameter hinzugefügt, max_fails und fail_timeout, um die automatische Fehlerwiederherstellungsfunktion zu konfigurieren.

  • max_fails: Legen Sie die maximale Anzahl von Fehlern innerhalb eines bestimmten Zeitraums fest (angegeben durch den Parameter fail_timeout). Standardmäßig ist es 1 Mal.
  • fail_timeout: Legen Sie das Timeout für die Wiederherstellung nach einem Fehler fest.

Wenn die Anzahl der Ausfälle eines Backend-Servers den durch max_fails konfigurierten Wert erreicht, entfernt Nginx den Server aus der Liste der verfügbaren Server und führt nach dem durch fail_timeout konfigurierten Timeout erneut eine Gesundheitsprüfung durch. Wenn der Server die Gesundheitsprüfung besteht, fügt Nginx ihn erneut zur Liste der verfügbaren Server hinzu.

Fazit:
Die Gesundheitsprüfung und die automatische Fehlerbehebungsfunktion des Nginx-Servers können die Stabilität und Verfügbarkeit des Systems effektiv verbessern. Mithilfe der obigen Konfigurationsbeispiele können wir Nginx einfach so konfigurieren, dass Funktionen zur Gesundheitsprüfung und zur automatischen Wiederherstellung nach Fehlern implementiert werden. Ich hoffe, dass dieser Artikel Ihnen hilft, die Funktionen zur Gesundheitsprüfung und automatischen Fehlerwiederherstellung des Nginx-Servers zu verstehen und zu nutzen.

Das obige ist der detaillierte Inhalt vonDetaillierte Beschreibung der Gesundheitsprüfung und der automatischen Fehlerwiederherstellung des Nginx-Servers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn