Was ist der Unterschied zwischen Unix-Socket und TCP-Socket in Nginx?

WBOY
Freigeben: 2023-05-16 13:37:06
nach vorne
1707 Leute haben es durchsucht

Es gibt zwei Möglichkeiten für Nginx, eine Verbindung zu fastcgi herzustellen: Unix-Domain-Socket und TCP. Unix-Domain-Socket oder IPC-Socket ist ein Terminal, das es zwei oder mehr Prozessen auf demselben Betriebssystem ermöglicht, miteinander zu kommunizieren. Im Gegensatz zu Pipes können Unix-Domänen-Sockets sowohl Byteströme als auch Datenwarteschlangen verwenden, während die Pipe-Kommunikation nur über Byteströme erfolgen kann. Die Schnittstelle von Unix-Domänen-Sockets ist der von Internet-Sockets sehr ähnlich, verwendet jedoch nicht das zugrunde liegende Netzwerkprotokoll für die Kommunikation. Die Funktion des Unix-Domain-Sockets ist Bestandteil des POSIX-Betriebssystems.

Vergleich zwischen TCP- und Unix-Domain-Socket-Methoden

TCP verwendet den TCP-Port, um eine Verbindung zu 127.0.0.1:9000 herzustellen, und Socket verwendet einen Unix-Domain-Socket, um eine Verbindung zum Socket herzustellen / dev/shm/ php-cgi.sock (Viele Tutorials verwenden den Pfad /tmp, und der Pfad /dev/shm ist ein tmpfs, das viel schneller ist als die Festplatte)

fastcgi_pass unix:/tmp/php-cgi.sock
fastcgi_pass 127.0.0.1:9000
Nach dem Login kopieren

Wenn der Server unter Druck steht ist nicht hoch, TCP und Socket Der Unterschied ist nicht groß, aber wenn der Druck relativ hoch ist, ist der Effekt der Verwendung der Socket-Methode tatsächlich besser.

Das Folgende ist die Konfigurationsmethode zum Ändern von TCP in den Socket-Modus in PHP 5.3 und höher:

Ändern Sie php-fpm.conf (/usr/local/php/etc/ php- fpm.conf)

;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock
Nach dem Login kopieren

Ändern Sie die Konfiguration des Serverabschnitts der Nginx-Konfigurationsdatei und ändern Sie die http-Methode in die Socket-Methode

location ~ .*.(php|php5)?$
{
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
Nach dem Login kopieren

Starten Sie php-fpm neu und nginx

service nginx restart
service php-fpm restart
ls -al /dev/shm
Nach dem Login kopieren

Sie können den Unix-Socket-Typ der Datei php-cgi.sock sehen. Theoretisch geht der Unix-Socket nicht über das Netzwerk und ist effizienter, aber die Stabilität ist nicht sehr ideal.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Unix-Socket und TCP-Socket in Nginx?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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