Heim >Backend-Entwicklung >PHP-Tutorial >linux - Was bedeutet der Parameter „process_control_timeout' in php-fpm.conf?
Lesen Sie über Baidu den Originaltext und übersetzen Sie ihn ins Chinesische
process_control_timeout = 0
Der untergeordnete Prozess akzeptiert das Wiederverwendungssignal des Hauptprozesses.
Was ist das Prinzip dieses gesamten Prozesses, wenn eine URL die Nginx-Verarbeitung anfordert und zur Verarbeitung übergeben wird? ? Was kann man in einem PHP-FPM-Prozess tun? Gibt es einen Experten, der mir dazu sagen kann?
process_control_timeout = 0
Was ist das Prinzip dieses gesamten Prozesses, wenn eine URL die Nginx-Verarbeitung anfordert und zur Verarbeitung übergeben wird? ? Was kann man in einem PHP-FPM-Prozess tun? Gibt es einen Experten, der mir dazu sagen kann?
Die Interaktion zwischen Nginx und PHP basiert auf der CGI-Schnittstelle. Da beide die CGI-Schnittstelle implementieren, kann Nginx die empfangene Anfrage an PHP übergeben und die entsprechenden Ergebnisse von PHP erhalten und an den Client zurücksenden.
Die grundlegendste CGI-Implementierung besteht darin, für jede Anfrage einen neuen PHP-Prozess zu erstellen und den Prozess nach Abschluss der Verarbeitung zu schließen. Diese Methode verbraucht beim Starten und Schließen des Prozesses viele Ressourcen, sodass die Effizienz nicht hoch ist.
Dann kam die Implementierungsmethode von FastCGI, die darin besteht, einen Prozess zu starten und ihn dann mehrere Anfragen verarbeiten zu lassen und ihn dann zu schließen. Diese Methode löst das Problem des Öffnens und Schließens des Prozesses für jede Anfrage. FastCGI hat jedoch einen Nachteil: Da ein Prozess nur eine Anfrage gleichzeitig verarbeiten kann, können mehrere Anfragen gleichzeitig nur in der Warteschlange stehen und auf die Verarbeitung durch den FastCGI-Prozess warten.
Um das Problem zu lösen, dass FastCGI nur eine Anfrage gleichzeitig verarbeiten kann, müssen mehrere FastCGI-Prozesse gestartet werden. Wenn jedoch mehrere FastCGI-Prozesse geöffnet werden, gibt es Verwaltungsprobleme mit diesen Prozessen, z. B. wie viele Prozesse geöffnet werden sollen, wie diesen Prozessen nach Bedarf Anforderungen zugewiesen werden usw. PHP-FPM ist ein solches Verwaltungsprogramm, das den FastCGI-Prozess verwaltet. Nginx leitet die Anfrage zunächst an PHP-FPM weiter, und dann wählt PHP-FPM den geeigneten FastCGI-Verarbeitungsprozess zur Verarbeitung aus.
Wenn PHP-FPM die Anfrage an den FastCGI-Verarbeitungsprozess weiterleitet, ist eine Prozesswiederverwendung erforderlich. Grundsätzlich wählt PHP-FPM einen inaktiven FastCGI-Prozess zur Bearbeitung der Anfrage aus. Vor der Verarbeitung sendet PHP-FPM ein Prozesswiederverwendungssignal an den FastCGI-Prozess, um den FastCGI-Prozess auf die Annahme und Verarbeitung der Anfrage vorzubereiten. Allerdings ist der FastCGI-Prozess nicht immer in der Lage, Anforderungen zu verarbeiten, d. h. er kann nicht auf Signale zur Prozesswiederverwendung reagieren (z. B. tritt eine angehaltene Animation auf). Daher gibt dieser Parameter an, wie lange PHP-FPM den FastCGI-Prozess verlässt, um auf die Prozesswiederverwendung zu reagieren Wenn das Signal abläuft, wählt PHP-FPM andere Wege (z. B. die Verwendung anderer FastCGI-Prozesse), um die Anfrage zu verarbeiten.
Der vollständige Name von fpm ist fastcgi Process Manager, der auf die Verwaltung von fastcgi spezialisiert ist