Home  >  Article  >  Operation and Maintenance  >  How php and nginx communicate

How php and nginx communicate

(*-*)浩
(*-*)浩Original
2019-11-01 14:43:434209browse

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

How php and nginx communicate

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn