对于nginx连接fastcgi的有两种方式:Tcp和Socket
1、Tcp是使用TCP端口连接127.0.0.1:9000
2、Socket是使用unix domain socket连接套接字:php-fpm.sock
两种的连接方式的比较:
在服务器压力不大的情况下,tcp和socket差别不大,但在压力比较满的时候,用套接字方式,效果确实比较好
nginx默认的配置过程是tcp连接,接下来我说一下我配置socket的过程和踩的坑
1、配置第一步:在你的php-fpm.conf文件中将
listen = 127.0.0.1:9000
修改为
listen = /path/php-fpm.sock
,并且将
;listen.owner = www
;listen.group = www
注释去掉,用户名和祖名对应nginx的 用户名和组名
2、修改nginx.conf文件中的fastcgi_pass
将
fastcgi_pass 127.0.0.1:9000;
修改为
fastcgi_pass unix:/path/php-fpm.sock;
3、重启nginx和php-fpm
./sbin/nginx -s reolad
./sbin/php-fpm.sock
我的失误是没有将php-fpm.conf中的被监听的用户名和组名的注释去掉
;listen.owner = www
;listen.group = www
希望能带给大家帮助