首先这个是拒绝连接的意思;我遇到这个报错的原因是,php-fpm.conf中“listen=” 写的是.sock ,而nginx.conf中fastcgi_pass 写的是ip,所以导致连接被拒绝!意思就是说,这两者必须一致,要么都监听IP,要么都使用.sock
0
本帖最后由 定海偶然 于 2015-12-9 09:39 编辑
在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好.
nginx 和 php-fpm 同时支持 unix 域套接字,unix 域套接字可用于实现同一主机下不同进程之间的通讯,它是基于 socket API 接口实现的,但并没有走 TCP 协议栈,所以在性能上更优越,适合同一主机下的进程间通讯
zhangzihao 发表于 2015-12-9 09:28
说说好在哪里;
在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好.
nginx 和 php-fpm 同时支持 unix 域套接字,unix 域套接字可用于实现同一主机下不同进程之间的通讯,它是基于 socket API 接口实现的,但并没有走 TCP 协议栈,所以在性能上更优越,适合同一主机下的进程间通讯
0
总之,如果nginx和php-fpm跑在同一台机器,就用sock ,而且这个sock的路径还可以指向/dev/shm ,效率高,而且你的机器还可以少开一个9000端口。
如果不在同一台机器,就只能tcp了。
定海偶然 发表于 2015-12-9 09:37
在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较 ...
总之,如果nginx和php-fpm跑在同一台机器,就用sock ,而且这个sock的路径还可以指向/dev/shm ,效率高,而且你的机器还可以少开一个9000端口。
如果不在同一台机器,就只能tcp了。
0
Tcp是使用TCP端口连接127.0.0.1:9000
Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock
qidi2015 发表于 2015-12-9 14:12
总之,如果nginx和php-fpm跑在同一台机器,就用sock ,而且这个sock的路径还可以指向/dev/shm ,效率高, ...
Tcp是使用TCP端口连接127.0.0.1:9000
Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock
编辑回复