BLOG | NGINX

Aktive oder passive Gesundheitschecks: Welches ist das Richtige für Sie?

NGINX-Teil-von-F5-horiz-schwarz-Typ-RGB
Robert Haynes Miniaturbild
Robert Haynes
Veröffentlicht am 11. April 2023

Regelmäßige Kontrolluntersuchungen beim Arzt sind wichtig für die Gesundheit und auch die regelmäßige Überprüfung der Integrität Ihrer Apps ist für eine zuverlässige Leistung von entscheidender Bedeutung. Beim Reverse-Proxying und Lastenausgleich des Datenverkehrs verwendet NGINX passive Integritätsprüfungen, um die Benutzer Ihrer Anwendung vor Ausfällen zu schützen, indem der Datenverkehr automatisch von Servern umgeleitet wird, die nicht auf Anfragen reagieren. NGINX Plus fügt aktive Integritätsprüfungen hinzu und sendet spezielle Sonden, die fehlerhafte Server erkennen können, noch bevor die Verarbeitung einer Anforderung fehlschlägt. Welche Art von Health-Check ist für Ihre Anwendungen sinnvoll? In diesem Beitrag geben wir Ihnen die Informationen, die Sie für diese Entscheidung benötigen.

Was ist ein Gesundheitscheck?

Im einfachsten Sinne ist ein Integritätscheck eine Methode, um festzustellen, ob ein Server in der Lage ist, den Datenverkehr zu bewältigen. NGINX verwendet Integritätsprüfungen, um die Server zu überwachen, für die es einen Reverse-Proxy oder einen Lastenausgleich für den Datenverkehr durchführt (sogenannte Upstream-Server) .

Passive Gesundheitschecks

Passive Integritätschecks – sowohl in NGINX Open Source als auch in NGINX Plus verfügbar – basieren auf der Beobachtung des Verhaltens des Servers bei der Handhabung von Verbindungen und Datenverkehr. Sie tragen dazu bei, Ausfälle aufgrund von Server-Timeouts für Benutzer zu verhindern, denn wenn NGINX feststellt, dass ein Server nicht in Ordnung ist, leitet es die Anfrage sofort an einen anderen Server weiter, sendet keine Anfragen mehr an den nicht in Ordnung befindlichen Server und verteilt zukünftige Anfragen auf die verbleibenden in Ordnung befindlichen Server in der Upstream-Gruppe.

Beachten Sie, dass passive Integritätsprüfungen nur dann wirksam sind, wenn für die Upstream-Gruppe mehrere Mitglieder definiert sind. Wenn nur ein Upstream-Server definiert ist, wird dieser nie als nicht verfügbar markiert und Benutzer sehen einen Ausfall, wenn er nicht in Ordnung ist.

So funktionieren passive Gesundheitschecks

Hier finden Sie eine detaillierte Beschreibung der Funktionsweise passiver Integritätsprüfungen. Wenn Sie sich dafür nicht interessieren, können Sie direkt zu den aktiven Integritätsprüfungen springen.

Standardmäßig betrachtet NGINX einen TCP/UDP-Server (Stream-Server) als fehlerhaft, wenn beim Herstellen einer Verbindung mit ihm ein einzelner Fehler oder eine Zeitüberschreitung auftritt.

NGINX betrachtet einen HTTP-Server als fehlerhaft , wenn beim Herstellen einer Verbindung mit ihm, beim Übergeben einer Anforderung an ihn oder beim Lesen des Antwortheaders ein einzelner Fehler oder eine Zeitüberschreitung auftritt (der Erhalt überhaupt keiner Antwort zählt als dieser Fehlertyp). Mit der Direktive „proxy_next_upstream“ können Sie diese Bedingungen für das HTTP- Proxying anpassen. Außerdem gibt es eine parallele Direktive für die Protokolle FastCGI , gRPC , memcached , SCGI , TCP/UDP und uwsgi .

Sowohl bei HTTP als auch bei TCP/UDP wartet NGINX standardmäßig zehn Sekunden, bevor es erneut versucht, eine Verbindung herzustellen und eine Anfrage an einen fehlerhaften Server zu senden. Sie können den Parameter fail_timeout für die Serverdirektive [ HTTP ][ Stream ] verwenden, um diese Zeitspanne zu ändern.

Sie können den Parameter max_fails für die Serverdirektive verwenden, um die Anzahl der Fehler oder Timeouts zu erhöhen, die auftreten müssen, damit NGINX den Server als fehlerhaft betrachtet. In diesem Fall legt der Parameter fail_timeout den Zeitraum fest, während dessen diese Anzahl von Fehlern oder Timeouts auftreten muss, sowie wie lange NGINX wartet, bevor es den Server erneut versucht, nachdem er als fehlerhaft markiert wurde.

Aktive Gesundheitschecks

Aktive Integritätschecks – exklusiv bei NGINX Plus – sind spezielle Anfragen, die regelmäßig an Anwendungsendpunkte gesendet werden, um sicherzustellen, dass sie korrekt reagieren. Sie erfolgen getrennt von und ergänzend zu passiven Gesundheitschecks. Beispielsweise könnte NGINX Plus regelmäßig eine HTTP-Anfrage an den Webserver der Anwendung senden, um sicherzustellen, dass dieser mit einem gültigen Antwortcode und dem richtigen Inhalt antwortet. Aktive Integritätsprüfungen ermöglichen eine kontinuierliche Überwachung der Integrität bestimmter Anwendungskomponenten und Prozesse. Es handelt sich um eine direkte Messung der Anwendungsverfügbarkeit, obwohl dies davon abhängt, wie repräsentativ die angegebene Integritätsprüfung für die allgemeine Anwendungsintegrität ist.

Sie können viele Aspekte einer aktiven Integritätsprüfung anpassen, siehe Anwendungsfälle für aktive Integritätsprüfungen .

Diagramm mit den Datenverkehrsarten NGINX Open Source und NGINX Plus, die für passive und aktive Integritätsprüfungen verwendet werden

Anwendungsfälle für passive Gesundheitschecks

Passive Gesundheitschecks sind Mindestanforderungen. Es empfiehlt sich für jedes Anwendungsentwicklungs-, DevOps-, DevSecOps- und Platform-Ops-Team, im Rahmen seines Überwachungsprogramms für die Produktionsinfrastruktur passive Integritätschecks durchzuführen. NGINX führt standardmäßig passive Integritätsprüfungen für lastausgeglichenen Datenverkehr durch, einschließlich HTTP-, TCP- und UDP-Konfigurationen.

Zu den Vorteilen passiver Gesundheitschecks gehören:

  • Verfügbar in NGINX Open Source
  • Standardmäßig aktiviert für die Server, die in einem upstream{}- Konfigurationsblock enthalten sind
  • Keine zusätzliche Belastung der vorgelagerten Server
  • Konfigurierbar hinsichtlich der Mindestanzahl von Fehlern innerhalb eines Zeitraums, wie unter Funktionsweise passiver Integritätsprüfungen beschrieben.
  • Konfigurierbarer langsamer Start (exklusiv für NGINX Plus) – wenn ein Server wieder in Betrieb ist, steigert NGINX Plus schrittweise die Menge des an ihn weitergeleiteten Datenverkehrs, um ihm Zeit zum „Aufwärmen“ zu geben.

Die Vorteile von NGINX Open Source sind Kosten (offensichtlich keine), Konfigurierbarkeit und eine umfangreiche Bibliothek mit Modulen von Drittanbietern. Da der Quellcode verfügbar ist, können Entwickler die Funktionalität ihren spezifischen Anforderungen entsprechend ändern und erweitern.

Für viele Anwendungen (und ihre Entwickler) sind passive Integritätsprüfungen ausreichend. Beispielsweise könnten aktive Integritätsprüfungen für Microservices, die keinen Kundenkontakt haben und kleinere Aufgaben ausführen, übertrieben sein. Ebenso sind sie möglicherweise nicht für Anwendungen erforderlich, bei denen Caching die Wahrscheinlichkeit von Latenzproblemen verringern kann oder Content Distribution Networks (CDNs) einige der Anwendungsaufgaben übernehmen können. Zusammenfassend lässt sich sagen, dass passive Gesundheitschecks allein am besten für Folgendes geeignet sind:

  • Überwachung des HTTP-Verkehrs
  • Überwachen der Infrastruktur getrennt von Anwendungen
  • Überwachungsanwendungen, bei denen Latenz tolerierbar ist
  • Überwachung interner Anwendungen, bei denen hohe Leistung nicht wichtig ist

Anwendungsfälle für aktive Integritätsprüfungen

Bei unternehmenskritischen Anwendungen sind aktive Integritätsprüfungen häufig von entscheidender Bedeutung, da Kunden und wichtige Prozesse direkt von Problemen betroffen sind. Bei diesen Anwendungen ist es wichtig, die Anwendung im Wesentlichen so zu testen, wie es der Kunde oder Verbraucher der Anwendung tut, und dazu sind aktive Integritätsprüfungen erforderlich. Aktive Integritätsprüfungen ähneln Tools zur Anwendungsleistungsüberwachung wie New Relic und AppDynamics, die Out-of-Band -Prüfungen verwenden, um die Anwendungslatenz und -reaktionen zu messen. Für aktive Integritätsprüfungen enthält NGINX Plus eine Reihe von Funktionen und Fähigkeiten, die in NGINX Open Source nicht enthalten sind:

  • Out-of-Band -Integritätsprüfungen zur Anwendungsverfügbarkeit
  • Testen Sie konfigurierte Endpunkte und suchen Sie nach spezifischen Antworten
  • Testen Sie andere Ports als die, die den tatsächlichen Anwendungsverkehr verarbeiten
  • Keepalive-HTTP-Verbindungen für Integritätsprüfungen, sodass nicht für jede Prüfung eine neue Verbindung eingerichtet werden muss
  • Bessere Kontrolle über Bestehens- und Nichtbestehensbedingungen
  • Testen Sie optional alle neu hinzugefügten Server, bevor sie echten Anwendungsverkehr empfangen.

Mit aktiven Integritätsprüfungen können Entwickler NGINX Plus so einrichten, dass es automatisch erkennt, wenn ein Back-End-Server ausfällt oder Probleme aufweist, und den Datenverkehr dann an fehlerfreie Server umleitet, bis das Problem behoben ist. Durch die bessere Konfigurierbarkeit aktiver Integritätsprüfungen können komplexere Integritätsprüfungen durchgeführt werden, wodurch möglicherweise Anwendungsprobleme erkannt werden, bevor sie sich auf echte Anwendungsbenutzer auswirken. Dadurch können Ausfallzeiten minimiert und Unterbrechungen des Benutzerzugriffs auf die Anwendung verhindert werden.

Konfigurieren von Integritätsprüfungen

Passive Integritätsprüfungen sind standardmäßig aktiviert, Sie können jedoch ihre Häufigkeit und die Anzahl der Fehler anpassen, die auftreten, bevor ein Dienst als fehlerhaft markiert wird, wie unter Funktionsweise passiver Integritätsprüfungen beschrieben. Vollständige Konfigurationsanweisungen für passive und aktive Integritätsprüfungen finden Sie in unserer Dokumentation:

Abschluss: Wählen Sie die Health Checks, die Ihren Anwendungsanforderungen entsprechen

Integritätsprüfungen sind ein wichtiger Bestandteil für den reibungslosen und reaktionsschnellen Betrieb einer Produktionsanwendung. Sie sind die beste Möglichkeit, Probleme zu erkennen und wachsende Latenzquellen zu identifizieren, bevor diese sich auf die Endbenutzer auswirken. Für viele Anwendungen sind passive Gesundheitschecks ausreichend.

Für kritischere Anwendungen, bei denen direkte Einblicke in das Anwendungsverhalten auf Benutzerebene erforderlich sind, sind aktive Prüfungen besser. NGINX Open Source ist kostenlos nutzbar und bietet konfigurierbare passive Integritätsprüfungen. NGINX Plus bietet erweiterte Funktionen zur aktiven Integritätsprüfung sowie kommerziellen Support.

Möchten Sie aktive Integritätsprüfungen mit NGINX Plus ausprobieren? Starten Sie noch heute Ihre 30-tägige kostenlose Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen .


„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."