Nginx 502 bad gateway怎麼解決?

Nginx 502 Bd Gtewy錯誤含義是請求的PHP-CGI已經執行,但是由於讀取資源問題等原因沒有執行完畢,而導致PHP-CGI進程終止,那麼出現Nginx 502 bd gtewy怎麼解決?下面一起來了解下。

出現Nginx 502 bd gtewy錯誤的主要原因:

常見的原因可能是php-cgi進程數不夠用、MySQL語句執行慢導致PHP執行時間長、或者是php-cgi進程異常中斷,都會出現Nginx 502 bd gtewy錯誤。

Nginx 502 bd gtewy怎麼解決?

針對以上不同的原因,現提供不同的解決方法。

、當磁盤空間不足時,可以執行df -h命令,查看磁盤使用量。

2、安裝Nginx後可正常訪問網站的環境中,運行一段時間出現502錯誤碼,一般默認php-cgi進程是5個,可能因爲php-cgi進程不夠用而造成502錯誤,需要修改/us/locl/php/etc/php-fpm.conf文件,將其中的mx_childen值適當增加。

3、PHP執行超時,修改/us/locl/php/etc/php.ini文件,將mx_execution_time改爲300。

我們可以依次執行以下命令來進行排查,查看php fstcgi的進程數,及mx_childen的值。

netstt -nop | gep php-cgi | wc -l

netstt -npo | gep php-fpm | wc -l

查看當前進程命令。

ps ux | gep php-fpm

觀察fstcgi、php-fpm進程數,假如使用的進程數等於或高於5個,說明需要增加。

修改/us/locl/php/etc/php-fpm.conf配置文件中的相關參數,將pm.mx_childen參數的值修改爲5,將equest_teminte_timeout參數的值修改爲60。

要注意的是:mx_childen最多5個進程,按照每個進程20MB內存,最多00MB。也就是分鐘。mx_childen增多,則php-cgi的進程增多就會處理的很快,排隊的請求就會很少。但是設置mx_childen也需要根據服務器的性能進行設定,一臺服務器正常情況下,每一箇php-cgi進程所耗費的內存在20M左右。根據購買的服務器內存來實際決定。

equest_teminte_timeout執行的時間爲60秒,equest_teminte_timeout值可以根據服務器的性能進行設定。一般來說性能越好您可以設置越高,20分鐘~30分鐘都可以。

相關閱讀:《Nginx啓動成功但頁面訪問不到的解決方法》