Detaillierte Erläuterung der Lösung zum reibungslosen Upgrade der Nginx-Version

Detaillierte Erläuterung der Lösung zum reibungslosen Upgrade der Nginx-Version

Hintergrund:

Da die Nginx-Version im Lastausgleichstestserver zu niedrig ist und eine Sicherheitslücke vorliegt, muss nach Abfrage der relevanten Informationen zur Behebung der Sicherheitslücke die Nginx-Version aktualisiert werden, um die Sicherheitslücke zu beheben.

Reibungslose Upgrade-Lösung für Nginx

1. Einführung in die hier verwendete Fassung

Alte Version nginx-1.12.2.tar.gz

Neue Version nginx-1.20.1.tar.gz

2. nginx-1.12.2 ist die aktuell laufende Version


Stellen Sie Port 8080 ein und ändern Sie die index.html der Homepage. Sie können auch nach einem reibungslosen Upgrade noch darauf zugreifen.

3. Entpacken Sie die neue Version nginx-1.20.1.tar.gz, kompilieren und installieren Sie sie im Verzeichnis der alten Version nginx-1.12.2, führen Sie die ursprüngliche Konfigurationsdatei nginx.conf aus und führen Sie sie wie folgt aus

./configure --prefix=/usr/local/nginx-1.12.2 --conf-path=/usr/local/nginx-1.12.2/nginx.conf --pid-path=/usr/local/nginx-1.12.2/nginx.pid --user=ngadm --group=ngadm --with-http_stub_status_module --without-http_rewrite_module 

machen && machen installieren

4. Nach Abschluss generiert Version 1.20.1 automatisch eine neue Nginx-Binärdatei im ursprünglichen sbin-Verzeichnis und das alte Nginx wird automatisch durch nginx.old ersetzt

5. Reibungsloses Upgrade

Nginx verfügt über eine sehr leistungsfähige Kontrolle über Prozesse und kann Prozesse über Signalanweisungen steuern. Häufig verwendete Signale sind:

  • -QUIT, schließt den Prozess, nachdem die Tabelle die aktuelle Anfrage verarbeitet hat.
  • -HUP bedeutet, die Konfiguration neu zu laden, also den ursprünglichen Prozess zu schließen und einen neuen Arbeitsprozess zu starten. Dieser Vorgang unterbricht die Zugriffsanforderung des Benutzers nicht, sodass Nginx über dieses Signal reibungslos neu gestartet werden kann.
  • -USR2, wird zum reibungslosen Upgrade ausführbarer Programme verwendet.
  • -WINCH, den Arbeitsprozess ordnungsgemäß beenden.

Führen Sie gemäß dem Prozesssteuerungssignal von Nginx Folgendes aus:

kill -USR2 38323 (die alte Prozess-PID ist 38323)
ps -ef |grep nginx 

Wechseln Sie zum neuen Masterprozess und schließen Sie den alten Workerprozess. Beachten Sie, dass der alte Masterprozess noch vorhanden ist. Führen Sie den Vorgang wie folgt aus:

kill –WINCH 38323 (die alte Prozess-PID ist 38323)
ps -ef |grep nginx 

Überprüfen Sie die aktuelle Version

sbin/nginx -v 

Das Upgrade wurde erfolgreich abgeschlossen.

Hinweis: Derzeit ist die MasterPID der neuen Version von nginx 41063. Gleichzeitig existiert auch der Masterprozess der alten Version (die alte Prozess-PID ist 38323). Wenn Sie kein Rollback durchführen müssen, können Sie den Exit-Vorgang des alten Prozesses wie folgt ausführen:

töten – QUIT 38323

Fallback-Schritte

Es gibt zwei Arten von Rollback-Vorgängen:

1. Sichern Sie vorab die alte Version von nginx. Wenn ein Problem auftritt, kopieren Sie die alte Version einfach zurück in das Verzeichnis /usr/local und starten Sie die alte Version von nginx neu. Führen Sie dies wie folgt aus:

nginx-Befehle
cp nginx-1.12.2.bak nginx-1.12.2
/usr/local/nginx-1.12.2/sbin/nginx –c /usr/local/nginx-1.12.2/nginx.conf

Überprüfen Sie den Nginx-Status ps –ef |grep nginx

2. Wenn der Masterprozess der neuen Version von nginx und der Masterprozess der alten Version gleichzeitig vorhanden sind, führen Sie Folgendes aus:

Wechseln Sie zurück zur alten Version des Masterprozesses

kill -HUP alter MasterPID 

Schließen Sie den Masterprozess der neuen Version von nginx und ändern Sie nginx.old (Binärdatei der alten Version von nginx) im ursprünglichen sbin-Verzeichnis zurück in nginx, um nginx zu verwalten.

kill -WINCH neue MasterPID
kill -QUIT neue Master-PID
cp /usr/local/nginx-1.12.2/sbin/nginx.old /usr/local/nginx-1.12.2/sbin/nginx 

Bestätigen Sie erneut, dass die Nginx-Version auf die ursprüngliche Version zurückgesetzt wurde

sbin/nginx -v 

Zusammenfassen

Dies ist das Ende dieses Artikels über die reibungslose Upgrade-Lösung für Nginx-Versionen. Weitere relevante Inhalte zum reibungslosen Upgrade von Nginx-Versionen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Beispiel für das Upgrade von nginx zur Unterstützung von HTTP2.0
  • So führen Sie in 1 Minute ein reibungsloses Upgrade und Rollback der Nginx-Version durch
  • So aktualisieren Sie Nginx zur Unterstützung von http2
  • Einige Vorschläge zur Verbesserung der Nginx-Leistung
  • Installation des Nginx-Dienstes und Software-Upgrade

<<:  Detaillierte Erklärung der Meta-Tags (die Rolle der Meta-Tags)

>>:  Detaillierte Verwendung der MySQL-Funktionen row_number() und over()

Artikel empfehlen

CSS-Implementierungscode zum Zeichnen von Dreiecken (Rahmenmethode)

1. Implementieren Sie ein einfaches Dreieck Mithi...

5 Dinge, die beim Schreiben von React-Komponenten mit Hooks zu beachten sind

Inhaltsverzeichnis 01. Verwenden Sie useState, we...

Hinweise zum Proc-Dateisystem des Linux-Kernel-Gerätetreibers

/***************** * proc-Dateisystem************...

Was ist ein MySQL-Tablespace?

Das Thema, das ich heute mit Ihnen teilen möchte,...

Lösung für Fehler 1290 beim Importieren von Dateidaten in MySQL

Fehlerszenario Verwenden Sie den MySQL-Befehl in ...

So vereinfachen Sie Redux mit Redux Toolkit

Inhaltsverzeichnis Probleme, die Redux Toolkit lö...

Eine kurze Analyse des Reaktionsprinzips und der Unterschiede von Vue2.0/3.0

Vorwort Seit der offiziellen Einführung von vue3....

HTML ungeordnete Liste Aufzählungspunkte mit Bildern CSS schreiben

Erstellen Sie eine HTML-Seite mit einer ungeordnet...