unix socket方式要比tcp的方式快,而且消耗資源少,因爲socket之間在nginx和php-fpm的進程之間通信,而tcp需要經過本地迴環驅動,還要申請臨時端口和tcp相關資源。
unix socket會顯得不是那麼穩定,當併發連接數爆發時,會產生大量的長時緩存,在沒有面向連接協議支撐的情況下,大數據包很有可能就直接出錯並不會返回異常。而TCP這樣的面向連接的協議,多少可以保證通信的正確性和完整性。
tcp方式:tcp協議監聽本機9000端口,需要通過網絡連接,佔用端口,佔用網絡資源
socket方式:使用unix domain socket連接套接字/dev/shm/php-cgi.sock,不走網絡,速度更快,
nginx server模塊設置fastcgi:
- tcp方式:
fastcgi_pass 127.0.0.1:9000;
- socket方式:
fastcgi_pass unix:/dev/shm/php-cgi.sock;
php-fpm.conf中配置鏈接監聽:
- tcp方式:
listen = 127.0.0.1:9000
- socket方式:
listen = /dev/shm/php-cgi.sock
/dev/shm是內存文件系統掛載點,比默認的/tmp/php-cgi.sock磁盤文件更快