Wie erhalte ich mit nginx den Status von Webservern im Backend?

Wie erhalte ich mit nginx den Status von Webservern im Backend?

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:

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.

  1. https://github.com/yaoweibin/nginx_upstream_check_module
  2. https://github.com/openresty/lua-resty-upstream-healthcheck
  3. 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; }

verwandte Informationen