如何解決WordPress中的502 Bad Gateway錯誤?
譯文【51CTO.com快譯】你有沒有在WordPress網站上看到過非常煩人又沮喪的502 Bad Gateway錯誤?是的,我們都遇到過這個問題。知道502 Bad Gateway錯誤是啥意思嗎?知道如何解決這個問題嗎?我們在本文將詳細介紹WordPress中的502 Bad Gateway錯誤,并告訴你如何排查WordPress中的502 Bad Gateway錯誤。
502 Bad Gateway錯誤的含義是什么?
502 Bad Gateway錯誤是個HTTP狀態代碼,意味著互聯網上的一臺服務器收到了來自另一臺服務器的無效響應。用技術性更強的話來說,502 Bad Gateway意味著代理(網關)服務器無法獲得來自上游服務器的有效響應或任何響應。
W3.org的官方文檔指出,這與以5(5xxx)開頭的HTTP狀態代碼與幾臺服務器之間通信不暢時發生的錯誤有關。
如果你在網站上看到502 Bad Gateway錯誤,表明源服務器向另一臺充當網關或代理的服務器發送了無效響應。要經過一番棘手的調查才能找出問題具體出在哪里。不過,你可以遵循幾個基本的排查步驟來解決這個問題。
502 Bad Gateway錯誤的幾種形式
由于各種互聯網瀏覽器和各種Web服務器及操作系統,502 Bad Gateway錯誤有幾種不同的形式。下面是502 Bad Gateway錯誤的幾種最常見的形式。
- ? “Error 502”
- ?“HTTP Error 502 – Bad Gateway”
- ?“502 Proxy Error”
- ?“HTTP 502”
- ?“502 Service Temporarily Overloaded”(“502服務暫時過載”)
- ?“502 Server Error: The server encountered a temporary error and could not complete your request”(“502服務器錯誤:服務器暫時遇到了錯誤,無法完成你的請求。”)
- ?“502. That’s an error. The server encountered a temporary error and could not complete your request. Please try again in 30 seconds. That’s all we know.”(“502。這是錯誤。服務器暫時遇到了錯誤,無法完成你的請求。請在30秒后重試。這是我們所知道的。”)
- ?屏幕一片空白
如何解決502 Bad Gateway錯誤(3種可能的辦法)
502 Bad Gateway錯誤通常是網絡或服務器出了問題,但也可能是客戶端問題。于是我們會排查服務器端的錯誤,還會排查客戶端的錯誤。下面是檢查和解決問題的幾個步驟。
1. 檢查服務器
如果你看到圖中所示的錯誤,很可能問題出在Web服務器。
不妨檢查一下Web服務器配置,本例中服務器運行Nginx。WordPress在PHP和MySQL上運行。所以在Nginx中,我們需要檢查PHP文件是如何處理的。在Nginx服務器部分找到“location ~ \.php$”。
- ssh@your_ip -p7022
502 Bad Gateway錯誤
從圖中所示的Nginx配置來看,PHP文件由在端口9000運行的fastcgi來處理。
不妨檢查端口上運行的是什么。
- netstat -pltn | grep 9000
如果你在執行該命令后沒看到任何結果,表明進程已終結。這是你看到502 Bad Gateway錯誤的原因。
在***版CentOS和Ubuntu中,可以調用此命令來查看應該從哪里運行進程:
- systemctl list-unit-files | grep fpm
502 Bad Gateway錯誤
執行該命令來運行服務:
- systemctl start php7.0-fpm
現在,進入到Web瀏覽器,檢查你的網站。
如果你使用CloudFlare,看到如下圖所示的502 Bad Gateway錯誤,你的Web服務器極有可能是宕機了。可以嘗試重啟Apache或Nginx,這取決于你使用哪種Web服務器。
cloudflare中的502 Bad Gateway錯誤
2. 清除緩存
如果已采用***個辦法,但還是看到502 Bad Gateway錯誤,那么你的Web瀏覽器仍依賴緩存。我們得告訴Web瀏覽器從網站加載***版本。為此,我們可以按下鍵盤上的Ctrl + F5(Windows/Linux)、工具欄中的Shift + Reload按鈕(Safari瀏覽器),或者CMD + Shift + R(針對Mac用戶的Chrome和Firefox)。
3. 禁用CDN
如果你在使用CloudFlare,可以嘗試暫時禁用CDN。
502 Bad Gateway錯誤:禁用CDN
4. 檢查腳本
如前所述,502 Bad Gateway錯誤是由于Web服務器出了問題。比如說,有時候,php進程因使用高端內存(high memory)而被服務器終結。這個終結過程會在一段時間后終止請求,這也會導致網站宕機。但是網站通常會自動可以訪問,因為這時PHP進程重新生成。為了***解決這個問題,要檢查哪個php腳本在使用高端內存。
5. 檢查插件和主題
排查哪個插件導致錯誤很簡單。即使我們無法訪問WordPress后端,也可以通過重命名插件目錄,一次性禁用所有插件。為此,使用SSH連接到你的服務器。請注意:你也可以使用FTP客戶軟件(比如FileZilla)來執行此操作。
解決502 Bad Gateway錯誤
你可以逐個啟用插件,按照以下步驟操作:
進入到wp-content目錄,我們可以看到沒有插件目錄,我們已對其重命名。
不妨創建一個插件目錄,并將一個插件移過去。這會自動啟用該插件。
解決wordpress中的502 Bad Gateway錯誤
有時,排查WordPress錯誤比我們想象的要容易,但有時也可能很難解決。
當然,如果你的WordPress VPS由服務提供商托管,無需為服務器操心,提供商的技術支持團隊會馬上幫你調查和解決這個502 Bad Gateway問題。他們隨時待命,能夠解答任何問題或要求。
原文標題:How to Fix the 502 Bad Gateway Error in WordPress
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】