nginx中php fpm的socket是什麼型別

2021-10-23 18:48:43 字數 618 閱讀 2757

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這樣的面向連線的協議,多少可以保證通訊的正確性和完整性。

nginx中php fpm的多程序池

php fpm多個程序池 說明 每個池使用不同的配置,各個池之間互不干涉。預設情況下,php 只啟用了乙個池,所有請求均在這個池中執行。一旦某些請求出現擁堵之類的情況,那麼很可能會連累整個池出現問題 如果啟用多個池,那麼可以把請求分門別類放到不同的池中執行,此時如果某些請求出現擁堵之類的情況,那麼只...

nginx和php fpm的配置

一 nginx 配置檔案 nginx.conf 原則 woker程序數與cpu核數一致。master程序用以管理woker程序,高併發可以考慮woker程序設定提高為cpu核數 2 引數 worker processes 1 原因 nginx作為 是提交請求給php fpm的,並沒有涉及到io 即讀...

Nginx呼叫遠端php fpm

在nginx伺服器的情況下,當我們輸入 http localhost 8080 index.php回車的時候 瀏覽器會將請求傳送給nginx,nginx會根據我們所配置的以.php結尾的php的檔案交給fastcgi location php通過fastcgi pass命令將請求 給fastcgi ...