NGINX-Konfiguration für DevOps: Serverions Trick für Bereitstellungen ohne Ausfallzeiten
Bereitstellungen ohne Ausfallzeiten Das bedeutet, Ihre Anwendung zu aktualisieren, ohne den Service zu unterbrechen – ein Muss für Unternehmen, in denen selbst ein kurzer Ausfall Millionen kosten kann. NGINX ermöglicht dies durch sein Master-Worker-Prozessmodell und intelligente Signale wie USR2 (neue Prozesse starten) und HUP (Konfiguration neu laden). Hier ist der Schlüssel:
- So funktioniert es: NGINX verlagert den Datenverkehr von alten Workern auf aktualisierte, ohne dass Verbindungen unterbrochen werden.
- Wichtige Schritte: Signale verwenden (
USR2,HUP, usw.), konfigurierennginx.confordnungsgemäß und validieren Sie die Änderungen vor dem Neuladen. - Techniken: Kombinieren Sie NGINX mit Methoden wie Blue-Green-Bereitstellungen oder Docker für nahtlose Updates.
- Gesundheitschecks: Stellen Sie mithilfe der passiven oder aktiven Integritätsprüfungen von NGINX sicher, dass nur fehlerfreie Server den Datenverkehr verarbeiten.
Mit der richtigen Konfiguration können Sie den reibungslosen Betrieb Ihrer Dienste während Updates gewährleisten, Ihren Umsatz sichern und das Vertrauen Ihrer Kunden bewahren.
NGINX-Grundlagen für Bereitstellungen ohne Ausfallzeiten

Erläuterung der Bereitstellung ohne Ausfallzeiten
NGINX verwendet ein Master-Worker-Modell, um Updates ohne Serviceunterbrechung abzuwickeln. Der Master-Prozess überwacht Konfiguration und Steuerung, während Worker-Prozesse die Client-Verbindungen verwalten. Dieses Setup ermöglicht eine nahtlose Umstellung des Datenverkehrs bei Updates von alten auf neue Worker und gewährleistet so einen unterbrechungsfreien Service.
NGINX-Verbindungsverwaltung
NGINX verlässt sich auf bestimmte Signale, um Prozesse während Upgrades oder Konfigurationsänderungen zu steuern:
- USR2: Startet neue Master- und Worker-Prozesse.
- WINDE: Stoppt alte Arbeitsprozesse ordnungsgemäß.
- HUP: Lädt die Konfiguration neu und ersetzt Worker.
- AUFHÖREN: Fährt den Master und die Worker ordnungsgemäß herunter.
Beim Neuladen verschiebt NGINX die alte Master-Prozess-ID nach /run/nginx.pid.oldbin, schreibt die neue Master-Prozess-ID in /run/nginx.pid, und ermöglicht alten Workern, aktive Anfragen abzuschließen, bevor sie heruntergefahren werden.
Moderne App-Bereitstellungen: So verwenden Sie NGINX und JFrog, um …

Einrichten von NGINX für den Dauerbetrieb
Um Verbindungen während Neuladevorgängen aktiv zu halten, nutzen Sie die Master-Worker-Architektur von NGINX mit den folgenden Einstellungen.
Wichtige NGINX-Konfigurationsschritte
Einschalten Mehrfachakzeptieren um es Mitarbeitern zu ermöglichen, mehrere Verbindungen pro Ereignis zu verarbeiten. Hier ist eine Beispielkonfiguration für nginx.conf:
worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; multi_accept on; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Neuladen der Konfiguration ohne Ausfallzeit
- Laden Sie die aktuellen Worker neu, um die Änderungen anzuwenden:
nginx -s neu laden - Überprüfen Sie die aktualisierte Master-Prozess-ID:
cat /run/nginx.pid - Führen Sie ein Binärupgrade durch, ohne den Datenverkehr zu unterbrechen:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
Diese Schritte ermöglichen einen reibungslosen Verkehrsübergang zwischen alten und neuen Mitarbeitern und gewährleisten einen unterbrechungsfreien Betrieb.
sbb-itb-59e1987
Bereitstellungsmethoden mit NGINX
Sie können NGINX verwenden, um Bereitstellungen ohne Ausfallzeiten zu erreichen, indem Sie Techniken wie Blue-Green-Setups oder containerbasierte Ansätze nutzen.
Blue-Green-Bereitstellungs-Setup
Mit NGINX können Sie den Verkehr zwischen zwei Umgebungen verwalten – allgemein bekannt als Blau und GrünDiese Umgebungen sind identisch, aber immer nur eine ist aktiv. So funktioniert es:
- Stellen Sie die aktualisierte Version in der inaktiven Umgebung bereit (z. B. grün).
- Führen Sie Integritätsprüfungen durch, um sicherzustellen, dass die neue Version ordnungsgemäß funktioniert.
- Aktualisieren Sie nach der Überprüfung die NGINX-Konfiguration um den Verkehr an die aktualisierte Umgebung weiterzuleiten.
- Laden Sie die Konfiguration neu mit dem
HUPSignal, um den Abbruch aktiver Verbindungen zu vermeiden.
Diese Methode gewährleistet einen reibungslosen Übergang ohne Dienstunterbrechungen.
Docker- und NGINX-Integration
Die Verwendung von Docker mit NGINX optimiert Bereitstellungen durch die Gewährleistung konsistenter Umgebungen für Ihre Anwendungs- und Proxy-Ebene. So erreichen Sie Updates ohne Ausfallzeiten:
- Starten Sie den neuen Container neben dem aktuell aktiven.
- Führen Sie Integritätsprüfungen durch, um zu bestätigen, dass der neue Container bereit ist.
- Ändern Sie die NGINX-Upstream-Konfiguration, um den neuen Container einzuschließen.
- Laden Sie die Konfiguration neu mit dem
HUPSignal, das es den alten Arbeitern ermöglicht, die Verarbeitung abzuschließen, bevor sie beenden.
Dieser Ansatz gewährleistet einen unterbrechungsfreien Dienst während der Aktualisierung Ihrer Anwendung.
Testen und Verifizieren
Konfigurieren von Integritätsprüfungen
NGINX-Integritätsprüfungen stellen sicher, dass nur funktionsfähige Server den Datenverkehr verarbeiten. Diese Prüfungen werden parallel zur Upstream-Konfiguration und zum Blue-Green-Routing durchgeführt. NGINX bietet zwei Arten von Integritätsprüfungen: passiv (verfügbar in NGINX Open Source) und aktiv (exklusiv für NGINX Plus).
Für passive Integritätsprüfungen in NGINX Open Source richten Sie Ihren Upstream-Block wie folgt ein:
Upstream-Backend { Server Backend1.serverion.com:8080 max_fails=3 Fail_timeout=30s; Server Backend2.serverion.com:8080 max_fails=3 Fail_timeout=30s; Zone Backend 64k; } Wenn Sie NGINX Plus verwenden, können Sie aktive Integritätsprüfungen aktivieren, indem Sie die Gesundheitscheck Richtlinie zusammen mit einer übereinstimmen Block:
Standort / { Proxy-Pass http://Backend; Health-Check-Intervall=5 s, Fehler=3, Durchläufe=2, obligatorisch, persistent; Übereinstimmung mit Health-Check { Status 200; Header-Inhaltstyp = Anwendung/JSON; Text ~ „Status“: „UP““; } } Stellen Sie sicher, dass Sie diese Konfigurationen validieren, bevor Sie NGINX neu laden.
Überprüfen der Konfiguration
Testen Sie Ihre NGINX-Konfiguration vor dem Neuladen immer auf Richtigkeit. Verwenden Sie den folgenden Befehl:
nginx -t -c /Pfad/zu/Ihrer/nginx.conf Grundlagen der Bereitstellung ohne Ausfallzeiten
Um ausfallfreie Bereitstellungen zu gewährleisten, sind eine sorgfältige NGINX-Konfiguration und eine solide Infrastrukturplanung unerlässlich. Diese Elemente greifen ineinander und gewährleisten so unterbrechungsfreie Updates.
Hier sind die Schlüsselfaktoren für den Erfolg:
- Prozesssteuerung und Konfigurationsvalidierung: Nutzen Sie die Architektur von NGINX voll aus und halten Sie sich gleichzeitig an gründliche Testprotokolle.
- Stabilität der Infrastruktur: Sorgen Sie für eine gleichbleibende Leistung und halten Sie die Sicherheit während des gesamten Bereitstellungsprozesses hoch.
Weitere Informationen zu Integritätsprüfungen und Rollback-Schritten finden Sie im Testen und Verifizieren Abschnitt.
ServerionDie Plattform von unterstützt diese Bemühungen mit zuverlässiger Stabilität und Sicherheit. globale Rechenzentren Sorgen Sie während Updates für eine stabile Leistung und der integrierte DDoS-Schutz sorgt dafür, dass die Sicherheit erhalten bleibt.
Beginnen Sie im kleinen Rahmen, indem Sie Feature-Toggles für nicht kritische Dienste verwenden. Skalieren Sie schrittweise, wobei regelmäßige Tests, genaue Überwachung und klare Rollback-Pläne im Mittelpunkt Ihrer Strategie stehen.
Verwandte Blogbeiträge
- Beherrschen von Nginx-Konfigurationen für optimale Webserver-Leistung
- Beherrschung der NGINX-Konfiguration: Wie Serverion den Erfolg des B2B-Webhostings freischaltet
- NGINX Config Rewind: Serverion lässt die verlorene Kunst der Proxy-Cache-Optimierung wieder aufleben
- Die vergessene NGINX-Konfigurationsgrenze: Serverions Eintauchen in FastCGI Microcaching