Heim  >  Artikel  >  Backend-Entwicklung  >  Die Beziehung zwischen Nginx und PHP-FPM

Die Beziehung zwischen Nginx und PHP-FPM

(*-*)浩
(*-*)浩Original
2019-09-03 13:19:314130Durchsuche

Die Beziehung zwischen Nginx und PHP-FPM

php-fpm ist der FastCGI-Prozessmanager(empfohlenes Lernen: Web-Frontend-Video-Tutorial)

1 . Web Laden Sie den FastCGI-Prozessmanager (IIS ISAPI oder Apache-Modul), wenn der Server die Serververbindung startet.

3. Wenn die Client-Anfrage den Webserver erreicht, wählt der FastCGI-Prozessmanager einen CGI-Interpreter aus und stellt eine Verbindung her. Der Webserver sendet CGI-Umgebungsvariablen und Standardeingaben an den FastCGI-Unterprozess php-cgi.

4. Nachdem der FastCGI-Unterprozess die Verarbeitung abgeschlossen hat, gibt er über dieselbe Verbindung Standardausgabe- und Fehlerinformationen an den Webserver zurück. Wenn der untergeordnete FastCGI-Prozess die Verbindung schließt, wird die Anfrage verarbeitet. Der untergeordnete FastCGI-Prozess wartet dann auf die nächste Verbindung vom FastCGI-Prozessmanager (der auf dem Webserver ausgeführt wird) und verarbeitet diese. Im CGI-Modus wird php-cgi an dieser Stelle beendet.

Im obigen Fall können Sie sich vorstellen, wie langsam CGI normalerweise ist. Jede Webanfrage an PHP muss php.ini erneut analysieren, alle Erweiterungen neu laden und alle Datenstrukturen neu initialisieren. Bei FastCGI geschieht dies alles nur einmal, nämlich beim Start des Prozesses. Ein zusätzlicher Bonus besteht darin, dass dauerhafte Datenbankverbindungen funktionieren.

FastCGI ist ein Protokoll, das als Brücke zwischen Anwendungen und WEB-Servern dient. Nginx kann nicht direkt mit PHP-FPM kommunizieren, sondern leitet die Anfrage zur Verarbeitung über FastCGI an PHP-FPM weiter.

location ~ \.php$ {
    try_files $uri /index.php =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
Hier leitet fastcgi_pass alle PHP-Anfragen zur Verarbeitung an php-fpm weiter. Mit dem Befehl netstat können Sie erkennen, dass der auf Port 127.0.0.1:9000 ausgeführte Prozess php-fpm ist.

Das obige ist der detaillierte Inhalt vonDie Beziehung zwischen Nginx und PHP-FPM. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was kann phpmyadmin tun?Nächster Artikel:Was kann phpmyadmin tun?