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.
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 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.
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 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 .
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:
upstream{}-
Konfigurationsblock enthalten sindDie 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:
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:
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.
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:
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."