本文摘自PHP中文网,作者(*-*)浩,侵删。

Nginx与PHP的两种通信方式-unix socket和tcp socket
两者Nginx配置 (推荐学习:nginx教程)
unix socket
需要在nginx配置文件中填写php-fpm运行的pid文件地址。
1 2 3 4 5 6 | 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
需要在nginx配置文件中填写php-fpm运行的ip地址和端口号。
1 2 3 4 5 6 | 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;
}
|
两者比较

从上面的图片可以看,unix socket减少了不必要的tcp开销,而tcp需要经过loopback,还要申请临时端口和tcp相关资源。
但是,unix socket高并发时候不稳定,连接数爆发时,会产生大量的长时缓存,在没有面向连接协议的支撑下,大数据包可能会直接出错不返回异常。tcp这样的面向连接的协议,多少可以保证通信的正确性和完整性。
以上就是php与nginx如何通信的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
nginx开源吗
nginx配置https的详细流程
nginx替换过滤文本模块实例教程
多个nginx集群怎么工作
linux下nginx重启命令是什么?
为什么nginx很快?
nginx如何防止ssl证书过期
nginx启动失败怎么解决
nginx反向代理websocket配置
docker怎么安装nginx
更多相关阅读请进入《nginx》频道 >>
转载请注明出处:木庄网络博客 » php与nginx如何通信