nginx和php-fpm通信的兩種方式 unix socket和TCP


   nginx和fastcgi的通信方式有兩種,一種是TCP 一種是unix socket

           TCP使用的是 127.0.0.1:9000端口,將fastcgi_pass參數修改為127.0.0.1:9000

           unix socket 使用套接字 /dev/shm/php-cgi.sock,兩個進程引用同一個socket描述符文件就可以建立通道進行通信了,fastcgi_pass unix:/dev/shm/fpm-cgi.sock;

    創建sock文件

sudo touch /dev/shm/fpm-cgi.sock
sudo chown www-data:www-data /dev/shm/fpm-cgi.sock
sudo chmod 666 /dev/shm/fpm-cgi.sock

 

               原理上來說,unix socket方式肯定要比tcp的方式快而且消耗資源少,因為socket之間在nginx和php-fpm的進程之間通信,而tcp需要經過本地回環驅動,還要申請臨時端口和tcp相關資源,unix socket會顯得不是那么穩定,當並發連接數爆發時,會產生大量的長時緩存,在沒有面向連接協議支撐的情況下,大數據包很有可能就直接出錯並不會返回異常。而TCP這樣的面向連接的協議,多少可以保證通信的正確性和完整性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM