
HAProxy hat eine sehr schöne Statusseite, die mir zeigt, welche Webserver im Backend aktiv und welche inaktiv sind. Ich versuche, einige Probleme zu beheben und muss wissen, welche Server laut Nginx aktiv und welche inaktiv sind. Gibt es eine Webseite oder etwas, das Sie für Nginx konfigurieren können, sodass ich einfach eine URL aufrufen kann, wenn ich diese Art von Informationen benötige?
Danke, Dean
Antwort1
Es gibt einige Module, die Sie sich vielleicht ansehen möchten:
- https://github.com/anomalizer/ngx_upstream_status(zeigt den Status an, wie er vom Mitarbeiter gesehen wird, der die Statusseite bereitstellt)
- https://github.com/yaoweibin/nginx_upstream_check_module(überprüft proaktiv den Status von Upstream-Servern)
- https://github.com/cep21/healthcheck_nginx_upstreams(ähnlich wie das vorherige, unterstützt aber nur HTTP 1.0 für Statusprüfungen)
- http://nginx.localdomain.pl/wiki/UpstreamFair(Load Balancer mit integrierter Statusseite)
- ...
Antwort2
Leider ist dies standardmäßig fast unmöglich. Vanila Nginx hat standardmäßig keinen globalen Status für Upstream, daher sind diese Informationen für jeden Arbeitsprozess lokal.
Schauen Sie sich dieses Modul an, es könnte für Sie nützlich seinhttp://wiki.nginx.org/NginxHttpHealthcheckModule
Antwort3
Diese Antwort kommt zwar ein Jahr zu spät, aber das ustats-Modul für nginx sieht ziemlich beeindruckend aus:
https://code.google.com/p/ustats/
nach GitHub verschobenhttps://github.com/0xc0dec/ustats
Scheint nach 1.2 leider nicht mehr gepflegt zu werden, könnte aber noch funktionieren.
Habe eine gepflegte Gabel gefundenhttps://github.com/nginx-modules/ngx_ustats_module
Patch 1.7.2 funktioniert immer noch einwandfrei gegen 1.7.4
Antwort4
Ich war auf der Suche nach einer einfachen Integritätsprüfung, wie sie Amazon ELB bietet. Möglichkeit zum Hinzufügen von Instanzen in einem LB, mit einem Integritätsprüfungsmechanismus zum Entfernen fehlerhafter Instanzen.
Das waren also meine Optionen.
- https://github.com/yaoweibin/nginx_upstream_check_module
- https://github.com/openresty/lua-resty-upstream-healthcheck
Nginx bietet auch einen kostenlosen passiven Integritätscheck. Er macht genau das, was ich will, kein kompliziertes Monitoring, keine Gewichtungen, kein komplizierter Routencheck. Er pingt den Server an und prüft, ob eine 200-Statusantwort vorliegt. Er macht das im Round-Robin-Verfahren.
Der Parameter fail_timeout legt die Zeit fest, während der die angegebene Anzahl fehlgeschlagener Versuche erfolgen soll, damit der Server immer noch als nicht verfügbar gilt. Mit anderen Worten: Der Server ist für das durch fail_timeout festgelegte Intervall nicht verfügbar.
Der Parameter max_fails legt die Anzahl der fehlgeschlagenen Versuche fest, die innerhalb der angegebenen Zeit erfolgen dürfen, damit der Server immer noch als nicht verfügbar gilt.
Z.B:
upstream search { server 192.168.215.43:9200 max_fails=3 fail_timeout=10s; server 192.168.171.66:9200 max_fails=3 fail_timeout=10s; }