Heim Betrieb und Instandhaltung Nginx So konfigurieren Sie die Nginx-HTTP-Gesundheitsprüfung

So konfigurieren Sie die Nginx-HTTP-Gesundheitsprüfung

May 14, 2023 pm 06:10 PM
http nginx

Passive Prüfung

Bei passiven Gesundheitsprüfungen überwachen Nginx und Nginx Plus das Ereignis, wenn es auftritt, und versuchen, die fehlgeschlagene Verbindung wiederherzustellen . Wenn das immer noch nicht funktioniert, markieren Nginx Open Source und Nginx Plus den Server als nicht verfügbar und stellen vorübergehend das Senden von Anfragen an ihn ein, bis er wieder als aktiv markiert wird.

Die Bedingungen, unter denen ein Upstream-Server als nicht verfügbar markiert wird, werden für jeden Upstream-Server mit dem Parameter upstream der Serverdirektive im Block definiert:

  • # 🎜🎜 #fail_timeout – Legt fest, wie viele Fehlversuche unternommen werden müssen, bevor der Server als nicht verfügbar markiert wird, und wie lange der Server als nicht verfügbar markiert wird (Standard ist 10 Sekunden).

  • max_fails – Legt die Anzahl der Fehlversuche fest, die während fail_timeout auftreten müssen, bevor der Server als nicht verfügbar markiert wird (Standard ist 1 Versuch). Wenn Nginx im folgenden Beispiel keine Anfrage an den Server sendet oder innerhalb von 30 Sekunden dreimal keine Antwort erhält, bedeutet dies, dass der Server innerhalb von 30 Sekunden nicht verfügbar ist:

  • upstream backend {
      server backend1.example.com;
      server backend2.example.com max_fails=3 fail_timeout=30s;
    }
    Nach dem Login kopieren
    #🎜🎜 #Beachten Sie, dass bei nur einer einzigen Servergruppe die Parameter fail_timeout und max_fails ignoriert werden und der Server niemals als nicht verfügbar markiert wird.

Langsamer Serverstart


Kürzlich wiederhergestellte Server können leicht mit Verbindungen überflutet werden, was dazu führen kann, dass der Server als markiert wird nicht wieder verfügbar. Durch einen langsamen Start kann ein Upstream-Server sein Gewicht schrittweise von Null auf seinen Nennwert wiederherstellen, nachdem es wiederhergestellt wurde oder verfügbar wird. Dies kann durch Angabe des slow_start-Parameters des Upstream-Servermoduls erfolgen:

upstream backend {
  server backend1.example.com slow_start=30s;
  server backend2.example.com;
  server 192.0.0.1 backup;
}
Nach dem Login kopieren

Hinweis: Wenn es nur einen Server in der Gruppe gibt, wird der slow_start-Parameter ignoriert und der Server wird nie als markiert nicht verfügbar. Langsamer Start ist eine exklusive Funktion von nginx plus. Überprüfen Sie regelmäßig den Zustand Ihrer Upstream-Server, indem Sie spezielle Gesundheitsprüfungsanfragen senden und korrekte Antworten überprüfen.

So aktivieren Sie die aktive Gesundheitsprüfung:

1 Fügen Sie im Standortblock bei der Weitergabe von Anforderungen (proxy_pass) an die Upstream-Gruppe die Anweisung „health_check“ ein: #🎜 🎜#

server {
 location / {
   proxy_pass http://backend;
   health_check;
 }
}
Nach dem Login kopieren
Dieses Snippet definiert einen Server, der alle Anfragen an den Standort/die Upstream-Gruppe abgleicht, die an das aufrufende Backend weitergeleitet werden. Es ermöglicht außerdem eine erweiterte Gesundheitsüberwachung mithilfe der Direktive „health_check“: Standardmäßig sendet nginx plus alle fünf Sekunden eine „/“-Anfrage an jeden Server im Gruppen-Backend.

Die Integritätsprüfung schlägt fehl, wenn ein Kommunikationsfehler oder eine Zeitüberschreitung auftritt (der vom Server zurückgegebene Statuscode liegt außerhalb des Bereichs von 200–399). Der Server wird als fehlerhaft markiert und nginx plus sendet keine Client-Anfragen an ihn, bis er die Gesundheitsprüfung erneut besteht.

Eine weitere optionale Option: Sie können einen anderen Port für Gesundheitsprüfungen angeben, um beispielsweise den Zustand vieler Dienste auf demselben Host zu überwachen. Verwenden Sie den Port-Parameter der Direktive, um die neue Port-Gesundheitsprüfung anzugeben:

server {
 location / {
   proxy_pass  http://backend;
   health_check port=8080;
 }
}
Nach dem Login kopieren

2 Verwenden Sie in der Upstream-Servergruppe die Zonen-Direktive, um einen gemeinsam genutzten Speicherbereich zu definieren:

http {
 upstream backend {
   zone backend 64k;
   server backend1.example.com;
   server backend2.example.com;
   server backend3.example.com;
   server backend4.example.com;
 }
}
Nach dem Login kopieren

Dieser Bereich wird von allen Arbeitsprozessen gemeinsam genutzt und speichert die Konfiguration der Upstream-Gruppe. Dadurch können Arbeitsprozesse denselben Zählersatz verwenden, um Antworten von Servern in der Gruppe zu verfolgen.

Der Standardwert für aktive Gesundheitsprüfungen kann mit den Parametern der Anweisung „health_check“ überschrieben werden:

location / {
  proxy_pass http://backend;
  health_check interval=10 fails=3 passes=2;
}
Nach dem Login kopieren

Hier ändert der Intervallparameter die Verzögerung zwischen Gesundheitsprüfungen vom Standardwert 5 Sekunden auf 10 Sekunden erhöht. Der Parameter „fails“ erfordert, dass der Server drei Integritätsprüfungen nicht besteht, um ihn als fehlerhaft zu markieren (beginnend mit dem Standardwert). Schließlich bedeutet der Parameter „passes“, dass der Server anstelle des Standardwerts zwei aufeinanderfolgende Prüfungen bestehen muss, bevor er wieder als fehlerfrei markiert werden kann.

Geben Sie die angeforderte URL an.

Geben Sie den Parameter uri in der Direktive „health_check“ an, um die Route der Integritätsprüfungsanforderung festzulegen: #🎜🎜 #
location / {
  proxy_pass http://backend;
  health_check uri=/some/path;
}
Nach dem Login kopieren

Die angegebene URL wird an den Serverdomänennamen oder die IP-Adresse angehängt, die für den Server im Upstream-Block festgelegt ist. Für den ersten Server in der oben deklarierten Backend-Beispielgruppe fordert die Integritätsprüfung die URL http://backend1.example.com/some/path an.

Benutzerdefinierte Bedingungen definieren


Sie können benutzerdefinierte Bedingungen festlegen, die eine Antwort erfüllen muss, damit der Server den Zustand besteht überprüfen. Die Bedingungen werden in einem Match-Block definiert, auf den im Argument der Direktive „health_check“ verwiesen wird.

1. Geben Sie auf der http-{}-Ebene den Match-{}-Block an und benennen Sie ihn, zum Beispiel: „server_ok“

http {
 #... 
 match server_ok {
   # tests are here     
 }
}
Nach dem Login kopieren

2.health_check by Angabe des Blocks Der Match-Parameter und der Name des Match-Parameterblocks:

http {
 #... 
 match server_ok {
   status 200-399;
   body !~ "maintenance mode";
 }
 server {
   #...     
   location / {
     proxy_pass http://backend;
     health_check match=server_ok;
   }
 }
}
Nach dem Login kopieren
Die Integritätsprüfung wird bestanden, wenn der Statuscode der Antwort im Bereich 200-399 liegt und ihr Text nicht enthält die Zeichenfolge: 'Wartungsmodus'

Die Match-Direktive ermöglicht es Nginx Plus, den Statuscode, das Header-Feld und den Antworttext zu überprüfen. Verwenden Sie diese Anweisung, um zu überprüfen, ob der Status innerhalb des angegebenen Bereichs liegt, ob die Antwort Header enthält oder ob die Header oder der Text mit einem regulären Ausdruck übereinstimmen. Die Match-Direktive kann eine Statusbedingung, eine Textbedingung und mehrere Titelbedingungen enthalten. Die Antwort muss alle im Match-Block definierten Bedingungen erfüllen, damit der Server die Integritätsprüfung besteht.

例如,下面的 match 指令匹配有状态代码响应 200,精确值 text/html 的content-type 标题,页面中的文字:'welcome to nginx!'.

match welcome {
  status 200;
  header content-type = text/html;
  body ~ "welcome to nginx!";
}
Nach dem Login kopieren

以下示例使用感叹号(!)来定义响应不得通过运行状况检查的特征。在这种情况下,健康检查在非 301,302,303,或 307状态码,同时并没有 refresh 头信息时将通过检查,。

match not_redirect {
  status ! 301-303 307;
  header ! refresh;
}
Nach dem Login kopieren

健康检查可以在其他非 http 协议中启用, 例如 fastcgi, , scgi,  甚至 tcp 和 udp。

很多很好的特性,就是需要 nginx plus 才能使用。

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die Nginx-HTTP-Gesundheitsprüfung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

So lösen Sie Nginx403 -Fehler So lösen Sie Nginx403 -Fehler Apr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

So lösen Sie Nginx403 So lösen Sie Nginx403 Apr 14, 2025 am 10:33 AM

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

So lösen Sie Nginx304 Fehler So lösen Sie Nginx304 Fehler Apr 14, 2025 pm 12:45 PM

Antwort auf die Frage: 304 Nicht geänderter Fehler gibt an, dass der Browser die neueste Ressourcenversion der Client -Anfrage zwischengespeichert hat. Lösung: 1. Löschen Sie den Browser -Cache; 2. Deaktivieren Sie den Browser -Cache; 3. Konfigurieren Sie Nginx, um den Client -Cache zu ermöglichen. 4. Überprüfen Sie die Dateiberechtigungen; 5. Datei Hash prüfen; 6. Deaktivieren Sie CDN oder Reverse Proxy -Cache; 7. Starten Sie Nginx neu.

Wie kann ich überprüfen, ob Nginx begonnen wird? Wie kann ich überprüfen, ob Nginx begonnen wird? Apr 14, 2025 pm 12:48 PM

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

See all articles