Was passiert mit neuen Verbindungen während des Neuladens von Nginx?

Was passiert mit neuen Verbindungen während des Neuladens von Nginx?

Beim Neuladen von nginx prüft der Masterprozess zunächst die Gültigkeit der Syntax und versucht dann, die neue Konfiguration anzuwenden. Wenn dies erfolgreich ist, startet er neue Arbeitsprozesse und sendet Nachrichten an alte Arbeitsprozesse mit der Aufforderung, diese ordnungsgemäß herunterzufahren.

Wann sendet der Masterprozess eine Shutdown-Nachricht an alte Arbeitsprozesse – geschieht dies parallel zur Erstellung neuer Arbeitsprozesse oder erst, nachdem die neuen Arbeitsprozesse gestartet sind?

Möchten Sie wissen, ob das Neuladen von Nginx länger dauert und ob es während der Neuladedauer in der Lage ist, neue Verbindungen zu verarbeiten?

Antwort1

Das istaus den Nginx-Dokumenten:

Damit nginx die Konfigurationsdatei erneut lesen kann, muss ein HUP-Signal an den Masterprozess gesendet werden. Der Masterprozess überprüft zunächst die Gültigkeit der Syntax und versucht dann, die neue Konfiguration anzuwenden, d. h. Protokolldateien und neue Listening-Sockets zu öffnen. Wenn dies fehlschlägt, werden die Änderungen rückgängig gemacht und die Arbeit mit der alten Konfiguration fortgesetzt. Wenn dies erfolgreich ist, werden neue Arbeitsprozesse gestartet und Nachrichten an alte Arbeitsprozesse gesendet, in denen sie aufgefordert werden, ordnungsgemäß herunterzufahren. Alte Arbeitsprozesse schließen Listening-Sockets und bedienen weiterhin alte Clients. Nachdem alle Clients bedient wurden, werden alte Arbeitsprozesse heruntergefahren.

Ein alter Worker-Prozess wird am Leben gehalten, um Verbindungen herzustellen. Der alte Worker-Prozess wird beendet, wenn die neuen Worker gestartet werden konnten. Andernfalls startet nginx alte Worker erneut.

In den Dokumenten finden Sie auch ein ausführliches Beispiel des Vorgangs.

Hoffe das hilft!

verwandte Informationen