首頁  >  文章  >  運維  >  如何解決nginx中的500、502、503、504錯誤

如何解決nginx中的500、502、503、504錯誤

王林
王林轉載
2020-07-15 17:39:5911228瀏覽

如何解決nginx中的500、502、503、504錯誤

解決方法:

(推薦教學:nginx教學

一、解決500錯誤

1、500錯誤指的是伺服器內部錯誤,也就是伺服器遇到意外狀況,而無法履行請求。

2、500錯誤一般有幾種情況:

(1)web腳本錯誤,如php語法錯誤,lua語法錯誤等。

(2)訪問量大的時候,由於系統資源限制,而不能開啟過多的檔案。

3、一般分析思路:

(1)查看nginx error log ,查看php error log

(2)如果是too many open files,修改nginx的worker_rlimit_nofile參數,使用ulimit檢視系統開啟檔案限制,修改/etc/security/limits.conf

(3)如果是腳本的問題,則需要修復腳本錯誤,並優化程式碼

( 4)各種優化都做好,還是出現too many open files,那就要考慮做負載平衡,把流量分散到不同伺服器上去了。

二、解決502、504錯誤

1、使用nginx代理,而後端伺服器發生故障;或者php-cgi進程數不夠用;php執行時間長,或者是php-cgi進程死掉;已經fastCGI使用情況等都會導致502、504。

2、502 是指請求的php-fpm已經執行,但是由於某種原因而沒有執行完畢,最終導致php-fpm進程終止。

一般來說,與php-fpm.conf的設定有關,也與php的執行程式效能有關,網站的訪問量大,而php-cgi的進程數偏少。針對這種情況的502錯誤,只需增加php-cgi的進程數。

具體就是修改/usr/local/php/etc/php-fpm.conf檔,將其中的max_children值適當增加。

這個資料要依據你的VPS或獨立伺服器的設定來設定。一般一個php-cgi進程佔20M內存,你可以自己計算下,適量增多。
/usr/local/php/sbin/php-fpm restart 然後重新啟動。

3、504 表示逾時,也就是客戶端所發出的請求沒有到達網關,請求沒有得到可以執行的php-fpm。

三、解決503錯誤

503 Service Temporarily Unavailable錯誤

單一ip並發設定過小會導致503報錯。

以上是如何解決nginx中的500、502、503、504錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除