Was sind die Unterschiede zwischen der Ausführung von PHP-FPM über einen Unix-Socket und einem TCP/IP-Socket?

Lesezeit: 1 Minute

Benutzer-Avatar
Leo Cavalcante

Es gibt diese zwei Möglichkeiten, PHP-FPM auszuführen. Ich weiß, dass in der Technik nichts kugelsicher ist, aber was sind die Vor- und Nachteile beider Methoden?

Der Unterschied besteht hauptsächlich in dem zusätzlichen Overhead, der durch die Verwendung des gesamten Netzwerkstapels zum „Packen“ und „Entpacken“ aller Daten entsteht. Beachten Sie, dass der Overhead für die meisten Bereitstellungen vernachlässigbar ist

  • Die Verwendung eines Sockets (z. B. listen = ‘/tmp/php-fpm.sock’) ist sinnvoll, wenn sich sowohl das Frontend (z. B. Nginx) als auch php-fpm in derselben Box befinden und

    1. Sie haben die Möglichkeit, sowohl das Front- als auch das Back-End horizontal zusammen zu skalieren (sagen Sie, Sie bauen einen Container mit beiden und Sie können weitere Container mit jeweils einem funktionierenden Paar erstellen) oder
    2. Ihre einzige Möglichkeit besteht darin, die eine “Box”, die Sie verwenden, vertikal zu skalieren (z. B. Sie fügen mehr CPU, RAM usw. hinzu).
  • Die Verwendung einer TCP-Verbindung (z. B. listen = 127.0.0.1:9000) ist sinnvoll, wenn Sie das Front- und das Back-End entkoppeln möchten, z. B. wenn Sie sich entscheiden, Ihre Umgebung zu skalieren, indem Sie eine einzige Nginx-Empfangsverbindungen haben und Übergeben der Arbeit über das Netzwerk an einen Cluster von PHP-FPM-Boxen

Jede Umgebung ist anders, daher besteht die einzig wahre Option wie immer darin, mit dem einen Setup zu beginnen, das richtig erscheint, Lasttests durchzuführen und die Leistung weiter zu messen, damit Sie verschiedene Optionen ausprobieren können, wenn sich Ihre Lastanforderungen entwickeln (normalerweise entscheiden Sie sich für diejenige, die billiger zu implementieren oder einfacher zu warten ist, da beides solide, kampferprobte Ansätze sind)

1236370cookie-checkWas sind die Unterschiede zwischen der Ausführung von PHP-FPM über einen Unix-Socket und einem TCP/IP-Socket?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy