首先上一段為關於fast_cgi的配置**
location ~* \.php$
乍看是沒什麼毛病畢竟網上千篇一律的都是這樣的配置,接下我使用netstat -tlnp | grep 9000 篩選了一下監聽9000的程式然而結果卻出乎意料,並沒有監聽9000的程式,結果如下
(not
all processes could be identified, non-owned process info
到這裡幾乎已經很大機率是出現在配置上了,查詢了一下nginx 相關的配置資料發現
nginx和php-fpm的程序間通訊有兩種方式,一種是tcp,一種是unix domain socket.
其中tcp是ip加埠,可以跨伺服器.而unix domain socket不經過網路,只能用於nginx跟php-fpm都在同一伺服器的場景.用哪種取決於你的php-fpm配置:
方式1:
php-fpm.conf: listen = 127.0.0.1:9000
nginx.conf: fastcgi_pass 127.0.0.1:9000;
方式2:
php-fpm.conf: listen = /tmp/php-fpm.sock
nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;
其中php-fpm.sock是乙個檔案,由php-fpm生成,型別是srw-rw—-.
unix domain socket:
nginx <=> socket <=> php-fpm
tcp socket(本地回環):
nginx <=> socket <=> tcp/ip <=> socket <=> php-fpm
tcp socket(nginx和php-fpm位於不同伺服器):
nginx <=> socket <=> tcp/ip <=> 物理層 <=> 路由器 <=> 物理層 <=> tcp/ip <=> socket <=> php-fpm
而此次出現問題的原因在於,我使用的是unix domain socket而nginx配置的確實tcp方式,既然知道癥結所在,修改起來也就方便很多了修改**如下
location ~* \.php$
修改完配置之後,重啟伺服器,問題果然就解決了. nginx下php頻繁卡死502
試用nginx php fastcgi 做web伺服器,執行了幾個月的時間,煩惱的是經常碰到nginx 502 bad gateway 這個問題。參考了很多修改辦法,這個502的問題一直存在,今天打算重灌php fastcgi到php的安裝目錄裡一看,發現php的日誌檔案已經有幾十m的大小,開啟一看...
php程式死迴圈導致502報錯
請求訪問返回502錯誤提示,嘗試去除可疑 段,發現程式正常,可疑 段如下圖箭頭指向 當時腦熱的以為是本地php5.5.18版本過低,不支援陣列語法 實際php 5.4 開始支援的 於是公升級為php7.0.5版本,然而發現依舊502。最後仔細觀察nginx錯誤提示,nginx慢日誌如下圖所示,發現到...
PHP的502報錯 tianyi 666的部落格
相信自己,加油!nginx php 出現502 bad gateway,一般這都不是nginx的問題,而是由於 fastcgi或者php的問題導致的 伺服器出現 502 的原因是連線超時 我們向伺服器傳送請求 由於伺服器當前鏈結太多,導致伺服器方面無法給於正常的響應 產生此類報錯 因此如果你伺服器併...