lnmp下nginx出現5xx問題解決彙總

Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於讀取資源的等沒有執行完畢而導致PHP-CGI進程終止。

Nginx 503 Service Temporarily Unavailable  服務暫時不可用,由於臨時的服務器維護或者過載,服務器當前無法處理請求,(比如併發大的情況下)

Nginx 504 Gateway Time-out的含義是沒有請求到可以執行的PHP-CGI

 

502 彙總

 

1、php進程死亡

查看 service php-fpm status ps -aux |grep php

然後 service php-fpm start 啓動php-fpm

 

2、php-cgi進程數不足

 

ps -aux | grep php-fpm | grep pool | wc -l

 

此原因的問題表現爲:動態請求有時出現502錯誤,一般沒問題,這是併發高時php-cgi進程數不夠用的表現

解決方法:修改php-fpm配置php-fpm.conf,將 60< /value> 中的數加大,max_children數的設置不僅取決於服務器硬件配置,而且和php程序的複雜度有關,一般4G內存可以設置到 120-200。修改後把php-fpm reload下;必要時是再修改nginx配置nginx.conf, 將 worker_processes 數調到與cpu數相等(worker_processes默認爲1)

 

3、php-cgi 進程連接超時

 

php進程運行了一段時間出現502,這種情況可能是php.ini 沒有加set_time_limit(0) ,也可能是被php-fpm限定了運行時間,

 

解決方案:php-fpm.conf request_terminate_timeout

 

4、磁盤空間不足

 

此原因較少 表現爲502錯誤或者無法連接到服務器,無法連接到服務器是nginx也死了

這種情況的判斷:啓動php-fpm或者nginx時間較長,但最終啓動失敗。大概率是磁盤滿了

df -lh 關注log 刪除大量的日誌文件

 

Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於某種原因(一般是讀取資源的問題)沒有執行完畢而導致PHP-CGI進程終止。

Nginx 504 Gateway Time-out的含義是所請求的網關沒有請求到,簡單來說就是沒有請求到可以執行的PHP-CGI。

 

解決這兩個問題其實是需要綜合思考的,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設置有關,而Nginx 504 Gateway Time-out則是與nginx.conf的設置有關。

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