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

JavaScript implementiert die asynchrone Übermittlung von Formulardaten

In diesem Artikelbeispiel wird der spezifische Ja...

Verständnis für Webdesign-Layout

<br />Hier ergibt sich ein Widerspruch: In k...

Zusammenfassung und Praxis des Javascript-Prototyp-Kettendiagramms

Inhaltsverzeichnis Prototypenkette Wir können ein...

Perfekte Lösung für keine rc.local-Datei in Linux

Neuere Linux-Distributionen verfügen nicht mehr ü...

Zusammenfassung der Binlog-Nutzung der MySQL-Datenbank (unbedingt lesen)

Ich werde nicht näher darauf eingehen, wie wichti...

CSS3 realisiert die Animation des Shuttle-Sternenhimmels

Ergebnis: html <canvas id="Sternenfeld&qu...

MySQL-Batch entfernt Leerzeichen in einem bestimmten Feld

Gibt es in MySQL eine Möglichkeit, Leerzeichen st...

14 Techniken für leistungsstarke Websites

Original : http://developer.yahoo.com/performance...

JS realisiert den automatischen Wiedergabeeffekt von Bildern

In diesem Artikel wird der spezifische Code von J...

So verhindern Sie, dass Website-Inhalte in Suchmaschinen aufgenommen werden

Normalerweise besteht das Ziel beim Erstellen ein...

Anwendung von HTML und CSS in Flash

Anwendung von HTML und CSS in Flash: Ich habe zufä...