Unterstützen Sie den Stream Upstream Health Check (TCP/UDP/HTTP) und geben Sie eine HTTP-Schnittstelle zur Verfügung, um den Backend-Server-Status zu erhalten. "
Dieses Modul kann NGINX mit Active Backend Server Health -Checks liefern (prüfen Typen unterstützen TCP/UDP/HTTP).
Git Clone https://github.com/zhouchangxun/nginx/nginx.git klone https://github.com/zhouchangxun/ngx_stream_upstream_check_module.git
CD nginx/; Git anwenden ../ngx_stream_upstream_check_module/nginx-stable-1.12+.Patch
./auto/configure ---with-stream --add-module = ../ngx_stream_upstream_check_module/
mach && mach installieren
stream {
upstream tcp - cluster {
# simple round-robin
server 192.168 .0 .1 : 22 ;
server 192.168 .0 . 2 : 22 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = tcp ;
}
upstream udp - cluster {
# simple round-robin
server 192.168 .0 .3 : 53 ;
server 192.168 .0 . 4 : 53 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = udp ;
}
upstream http - cluster {
# simple round-robin
server 192.168 .0 .5 : 80 ;
server 192.168 .0 . 6 : 80 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 type = http ;
check_keepalive_requests 100 ;
check_http_send "HEAD / HTTP/1.1 r n Connection: keep-alive r n r n " ;
check_http_expect_alive http_2xx http_3xx ;
}
server {
listen 522 ;
proxy_pass tcp - cluster ;
}
server {
listen 53 ;
proxy_pass udp - cluster ;
}
server {
listen 8080 ;
proxy_pass http - cluster ;
}
}
http {
server {
listen 80 ;
location / status {
l4check_status ;
}
}
}Syntax:
prüfen intervall = millisekunden [fall = count] [rise = count] [timeout = milliseconds] [default_down = true | false] [type = tcp | udp | http] [port = check_port]
Standard: Intervall = 30000 Fall = 5 Rise = 2 Timeout = 1000 default_down = True Type = TCP
Kontext: Stream/Upstream
Dieser Befehl kann die Gesundheitsprüffunktion des Backend -Servers einschalten.
Intervall: Das Intervall zwischen Gesundheitscheckpaketen, die an das Backend gesendet wurden.
Herbst (Fall_Count): Wenn die Anzahl der aufeinanderfolgenden Fehler fall_count erreicht, wird der Server in Betracht gezogen.
Rise (Rise_Count): Wenn die Anzahl der Erfolge RISE_COUNT erreicht, wird der Server als erhöht angesehen.
Timeout: Die Auszeit der Backend Health -Anfrage.
default_down: Legt den Serverstatus am Anfang fest. Wenn es wahr ist, bedeutet dies, dass die Standardeinstellung sinkt. Wenn es falsch ist, ist es oben. Der Standardwert ist wahr, was bedeutet, dass der Server zunächst der Ansicht ist, dass er nicht verfügbar ist, und er wird erst nach dem Erreichen des Gesundheitspakets als gesund angesehen, die eine bestimmte Anzahl erfolgreicher Zeiten erreicht haben.
Typ: Die Art des Gesundheitspakets unterstützt jetzt die folgenden Typen
Port: Geben Sie den Scheck -Port des Backend -Servers an. Sie können den Port des Backend -Servers angeben, der sich vom realen Dienst unterscheidet. Beispielsweise bietet das Backend einer Anwendung mit Port 443. Sie können den Status von Port 80 überprüfen, um den Gesundheitszustand des Backends zu bestimmen. Die Standardeinstellung ist 0, was den vom Backend Server bereitgestellten Port bedeutet.
Syntax: check_keepalive_requests request_num
Standard: 1
Kontext: Stream/Upstream
Diese Anweisung kann die Anzahl der von einer Verbindung gesendeten Anforderungen konfigurieren, und der Standardwert beträgt 1, was bedeutet, dass Nginx die Verbindung nach Abschluss einer Anforderung schließt.
Syntax: check_http_send http_packet
Standard: "get / http / 1.0 r n r n"
Kontext: Stream/Upstream
Diese Anweisung kann den vom HTTP Health Check -Paket gesendeten Anforderungsinhalt konfigurieren. Um die Menge der übertragenen Daten zu reduzieren, wird empfohlen, die "Kopf" -Methode zu verwenden.
Bei Verwendung einer langen Verbindung für die Gesundheitsprüfung müssen Sie diesem Befehl den Anforderungsüberschuss hinzufügen, z. Gleichzeitig sollte die Größe des angeforderten URI nicht zu groß sein, um sicherzustellen, dass sie innerhalb von 1 Intervall übertragen werden kann. Andernfalls gilt es als Backend -Server- oder Netzwerkausnahme vom Gesundheitscheckmodul.
Syntax: check_http_exect_alive [http_2xx | http_3xx | http_4xx | http_5xx]
Standard: http_2xx | http_3xx
Kontext: Stream/Upstream
Diese Richtlinie gibt den erfolgreichen Status der HTTP -Antwort an, und standardmäßig wird der Status von 2xx und 3xx als gesund angesehen.
Syntax : check_shm_size Größe
Standard : 1m
ContX : Stream
Alle Backend Server Health Check -Status werden im gemeinsam genutzten Speicher gespeichert, und diese Anweisung kann die Größe des gemeinsam genutzten Speichers festlegen. Der Standard ist 1 m. Wenn Sie mehr als 1.000 Server und während der Konfiguration Fehler haben, müssen Sie möglicherweise die Größe des Speichers erweitern.
Syntax: L4Check_status [HTML | CSV | JSON]
Standard: l4Check_status html
Kontext: HTTP/Server/Speicherort