End.
原
fastcgi_pass配置为sock与9000区别
区别一:两种协议有区别
Socket方式
UNIX Domain Socket不经过网络,只是在系统内部进行通信,适用于php和nginx都装在同一台linux服务器上。流程:Nginx <=> socket <=> PHP-FPM
tcp方式
既适用于php和nginx都装在同一台linux服务器上,同时又适用于不在同一台服务器上的,一般在同一个局域网中。流程:
- 同一台服务器:Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM
- 不同服务:Nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> PHP-FPM
区别二:Nginx配置、php-fpm.conf配置
Socket方式
php-fpm.conf 文件配置
listen = /tmp/php-fpm.sock
nginx.conf 文件配置
fastcgi_pass unix:/tmp/php-fpm.sock;
tcp方式
php-fpm.conf 文件配置
listen = 127.0.0.1:9000
nginx.conf 文件配置
fastcgi_pass 127.0.0.1:9000;
我们真正实例中多数都是装在同一台服务器上,所以选择UNIX Domain Socket是比较合适的选择.
因为这样可以避免数据传输经过tcp层造成导致TIME_WAIT连接过多的问题。
End.