php-fpm设置socket方式连接FastCGI

nginx和fastcgi的通信方式有两种,一种是TCP的方式,一种是unix socket方式。

php-fpm设置socket方式连接FastCGI

socket方式不会走到tcp层,tcp方式则会走到ip层。因此,理论上说socket连接方式效率会更好一点。
TCP和unix domain socket方式对比

TCP是使用TCP端口连接127.0.0.1:9000

Socket是使用unix domain socket连接套接字/dev/shm/php-fpm.sock

修改php-fpm.conf配置

1
2
3
4
#listen = 127.0.0.1:9000
listen=/dev/shm/php-fpm.sock #/dev/shm/为内存文件系统,注意 确保可读写
listen.owner=apache #注意自己的用户和组
listen.group=apache

修改nginx.conf配置

1
2
3
#fastcgi_pass    127.0.0.1:9000;
#将相应的如上内容修改如下
fastcgi_pass unix:/dev/shm/php-fpm.sock;

重启nginx和php-fpm

1
2
service nginx restart
/usr/local/nginx/sbin/nginx -s reload