nginx與php-fpm兩種通信方式

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:

  1. tcp方式:
fastcgi_pass 127.0.0.1:9000;
  1. socket方式:
fastcgi_pass unix:/dev/shm/php-cgi.sock;

php-fpm.conf中配置鏈接監聽:

  1. tcp方式:
listen = 127.0.0.1:9000
  1. socket方式:
listen = /dev/shm/php-cgi.sock

/dev/shm是內存文件系統掛載點,比默認的/tmp/php-cgi.sock磁盤文件更快

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章