Eine kurze Diskussion über die Beziehung zwischen PHP-FPM, Nginx und FastCGI

青灯夜游
Freigeben: 2023-04-10 08:00:02
nach vorne
3114 Leute haben es durchsucht

In diesem Artikel erfahren Sie mehr über die Beziehung zwischen PHP-FPM, Nginx und FastCGI sowie über die Konfiguration des Nginx-Reverse-Proxys und des Lastausgleichs. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über die Beziehung zwischen PHP-FPM, Nginx und FastCGI

Die Beziehung zwischen PHP-FPM, Nginx, FastCGI

FastCGI ist ein Protokoll, das eine Brücke zwischen Anwendungen und WEB-Servern darstellt. 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;
}
Nach dem Login kopieren

Fastcgi_pass leitet hier alle PHP-Anfragen zur Verarbeitung an PHP-FPM weiter. Sie können anhand des Befehls netstat erkennen, dass der Prozess, der auf Port 127.0.0.1:9000 ausgeführt wird, php-fpm ist. Zum Beispiel:

location ^~ /seckill_query/ {
    proxy_pass http://ris.filemail.gdrive:8090/;
    proxy_set_header Host ris.filemail.gdrive;
}

location ^~ /push_message/ {
    proxy_pass http://channel.filemail.gdrive:8090/;
    proxy_set_header Host channel.filemail.gdrive;
}

location ^~ /data/ {
    proxy_pass http://ds.filemail.gdrive:8087/;
    proxy_set_header Host ds.filemail.gdrive;
}
Nach dem Login kopieren

Ordnen Sie den URL-Pfad dem Standort zu und leiten Sie ihn zur Verarbeitung an einen anderen Server weiter. Eine kurze Diskussion über die Beziehung zwischen PHP-FPM, Nginx und FastCGI

Reverse-Proxy kann auch durch Lastausgleich im Upstream implementiert werden.

Nginx Load Balancing

Einführung in das Upstream-Modul:

Das Load Balancing-Modul wird verwendet, um einen Host aus der durch die „Upstream“-Direktive definierten Backend-Hostliste auszuwählen. Nginx verwendet zunächst das Lastausgleichsmodul, um einen Host zu finden, und verwendet dann das Upstream-Modul, um mit dem Host zu interagieren.

Lastausgleichskonfiguration:
upstream php-upstream {
    ip_hash;

    server 192.168.0.1;
    server 192.168.0.2;
}

location / {
    root   html;
    index  index.html index.htm;
    proxy_pass http://php-upstream;
}
Nach dem Login kopieren
Dieses Beispiel definiert eine Lastausgleichskonfiguration für PHP-Upstream und wendet diese Konfiguration über die Reverse-Proxy-Direktive „proxy_pass“ an. Der hier verwendete ip_hash-Algorithmus verfügt über viele Lastausgleichsalgorithmen, daher werde ich sie nicht alle einzeln auflisten.

Load Balancing kann auch auf fastcgi_pass verwendet werden.

Wie zum Beispiel:

fastcgi_pass http://php-upstream
Nach dem Login kopieren

Frage

Welche Beziehung besteht zwischen Reverse-Proxy und Lastausgleich? Die beiden Wörter Reverse-Proxy und Lastausgleich erscheinen oft zusammen, unterscheiden sich jedoch tatsächlich im Konzept von Beim Lastausgleich liegt der Schwerpunkt mehr auf einem Algorithmus oder einer Strategie zur Verteilung von Anforderungen auf verschiedene Maschinen, sodass er tatsächlich die Rolle eines Reverse-Proxys übernimmt.

Der Unterschied zwischen Proxy_Pass und Fastcgi_Pass

Eines ist das Reverse-Proxy-Modul, das andere wird zur Verarbeitung an das Factcgi-Backend weitergeleitet.

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Beziehung zwischen PHP-FPM, Nginx und FastCGI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage