Two communication methods between Nginx and PHP - unix socket and tcp socket
1. Both Nginx configurations (Recommended learning: nginx tutorial )
# unix socket
need to fill in the PID file running PID file running in the nginx configuration file address.
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; }
2. Comparison between the two
#As you can see from the above picture, unix socket reduces unnecessary tcp overhead. TCP 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 nginx and php communicate. For more information, please follow other related articles on the PHP Chinese website!