Home > Article > Operation and Maintenance > How php and nginx communicate
Two communication methods between Nginx and PHP - unix socket and tcp socket
Both Nginx configuration (recommended Study: nginx tutorial)
unix socket
You need to fill in the pid file address of php-fpm running in the nginx configuration file.
location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; }
tcp socket
You need to fill in the ip address and port number of php-fpm running in the nginx configuration file.
location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; }
Comparison of the two
As you can see from the above picture, unix socket reduces unnecessary tcp overhead, while tcp It needs to go through loopback and apply for temporary ports and tcp related resources.
However, unix socket is unstable when the concurrency is high. When the number of connections explodes, a large number of long-term caches will be generated. Without the support of connection-oriented protocols, large data packets may directly go wrong without returning an exception. Connection-oriented protocols such as tcp can more or less guarantee the correctness and integrity of communication.
The above is the detailed content of How php and nginx communicate. For more information, please follow other related articles on the PHP Chinese website!