Nginx verfügt über einen Master-Prozess und mehrere Worker-Prozesse. Der Hauptzweck des Master-Prozesses besteht darin, die Konfiguration zu lesen und zu verwalten. Worker-Prozesse führen die eigentliche Verarbeitung von Anforderungen durch Mechanismen zur effizienten Verteilung von Anforderungen auf Worker-Prozesse. Die Anzahl der Worker-Prozesse ist in der Konfigurationsdatei definiert und kann für eine bestimmte Konfiguration festgelegt oder automatisch an die Anzahl der verfügbaren CPU-Kerne angepasst werden (siehe worker_processes).
Die Funktionsweise von Nginx und seinen Modulen wird in der Konfigurationsdatei festgelegt. Standardmäßig heißt die Konfigurationsdatei nginx.conf und wird im Verzeichnis /usr/local/nginx/conf, /etc/nginx oder /usr abgelegt /local/etc/nginx.
Die folgenden Vorgänge beziehen sich auf das Starten, Herunterfahren und Neuladen von Konfigurationsdateien von nginx
Zum Starten nginx, führen Sie die ausführbare Datei aus, indem Sie die ausführbare Datei mit dem Parameter -s
aufrufen. Verwenden Sie die folgende Syntax:
nginx -s <em>signal</em>Nach dem Login kopieren
Where Signal kann eines der folgenden sein:
stop
– schnelles Herunterfahrenquit
– ordnungsgemäßes Herunterfahrenreload
– Neuladen die Konfigurationsdateireopen
– erneutes Öffnen der ProtokolldateienUm beispielsweise Nginx-Prozesse zu stoppen und darauf zu warten, dass die Worker-Prozesse mit der Bearbeitung aktueller Anforderungen fertig sind, kann der folgende Befehl lauten ausgeführt:
nginx -s quitNach dem Login kopieren
Dieser Befehl sollte unter demselben Benutzer ausgeführt werden, der nginx gestartet hat.
Änderungen in der Konfigurationsdatei werden erst übernommen, wenn der Befehl ausgeführt wird Die Neuladekonfiguration wird an nginx gesendet oder neu gestartet. Um die Konfiguration neu zu laden, führen Sie Folgendes aus:
nginx -s reloadNach dem Login kopieren
Sobald der Masterprozess das Signal zum Neuladen der Konfiguration erhält, überprüft er die Syntaxgültigkeit der neue Konfigurationsdatei und versucht, die darin bereitgestellte Konfiguration anzuwenden. Wenn dies erfolgreich ist, startet der Master-Prozess neue Worker-Prozesse und sendet Nachrichten an alte Arbeitsprozesse, in denen sie zum Herunterfahren aufgefordert werden, macht der Master-Prozess die Änderungen rückgängig und arbeitet mit der alten Konfiguration weiter. Dabei erhält er den Befehl, herunterzufahren, keine neuen Verbindungen mehr anzunehmen Behandeln Sie weiterhin aktuelle Anfragen, bis alle derartigen Anfragen bearbeitet sind.
Sobald Nginx gestartet ist, können Sie den Befehl nginx -s [signal] verwenden control nginx. [signal] kann der folgende Befehl sein:
stop
– Schnellstopp quit
– Reibungsloses Herunterfahren reload
– Konfigurationsdatei neu laden reopen
– Protokolldatei erneut öffnen
nginx -s quit
Wenn die Konfigurationsdatei geändert wird, ist sie erst dann neu, wenn Nginx neu gestartet wird oder einen Befehl zum Neuladen erhält Die Konfigurationsdatei wird wirksam, indem Sie
verwenden
nginx -s reload
Sobald der Masterprozess das Signal zum Neuladen der Konfigurationsdatei erhält, prüft er zunächst, ob die neue Konfigurationsdatei Syntaxfehler aufweist. Wenn keine Fehler vorliegen, wird der Masterprozess übernimmt die neue Konfiguration und startet einen neuen Arbeitsprozess. Gleichzeitig wird der alte Arbeitsprozess benachrichtigt, dass er nicht mehr funktioniert. Andernfalls verwendet der Master-Prozess bei einem Fehler in der Konfigurationsdatei weiterhin die alte Konfiguration und die alten Worker-Prozesse funktionieren weiterhin. Sobald der Master-Prozess den Worker-Prozess benachrichtigt, dass er nicht mehr funktioniert, stoppt der Worker-Prozess zunächst den Empfang von Verbindungen, verarbeitet dann alle aktuellen Anforderungen und beendet den Prozess dann, um die Ausführung zu beenden.
Das Obige stellt die grundlegende Einführung von Nginx vor (basierend auf offiziellen Dokumenten), einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.