如何解決WordPress中的502 Bad Gateway錯誤?
譯文【51CTO.com快譯】你有沒有在WordPress網(wǎng)站上看到過非常煩人又沮喪的502 Bad Gateway錯誤?是的,我們都遇到過這個問題。知道502 Bad Gateway錯誤是啥意思嗎?知道如何解決這個問題嗎?我們在本文將詳細介紹WordPress中的502 Bad Gateway錯誤,并告訴你如何排查WordPress中的502 Bad Gateway錯誤。
502 Bad Gateway錯誤的含義是什么?
502 Bad Gateway錯誤是個HTTP狀態(tài)代碼,意味著互聯(lián)網(wǎng)上的一臺服務器收到了來自另一臺服務器的無效響應。用技術性更強的話來說,502 Bad Gateway意味著代理(網(wǎng)關)服務器無法獲得來自上游服務器的有效響應或任何響應。
W3.org的官方文檔指出,這與以5(5xxx)開頭的HTTP狀態(tài)代碼與幾臺服務器之間通信不暢時發(fā)生的錯誤有關。
如果你在網(wǎng)站上看到502 Bad Gateway錯誤,表明源服務器向另一臺充當網(wǎng)關或代理的服務器發(fā)送了無效響應。要經(jīng)過一番棘手的調(diào)查才能找出問題具體出在哪里。不過,你可以遵循幾個基本的排查步驟來解決這個問題。
502 Bad Gateway錯誤的幾種形式
由于各種互聯(lián)網(wǎng)瀏覽器和各種Web服務器及操作系統(tǒng),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錯誤通常是網(wǎng)絡或服務器出了問題,但也可能是客戶端問題。于是我們會排查服務器端的錯誤,還會排查客戶端的錯誤。下面是檢查和解決問題的幾個步驟。
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
如果你在執(zhí)行該命令后沒看到任何結(jié)果,表明進程已終結(jié)。這是你看到502 Bad Gateway錯誤的原因。
在***版CentOS和Ubuntu中,可以調(diào)用此命令來查看應該從哪里運行進程:
- systemctl list-unit-files | grep fpm
502 Bad Gateway錯誤
執(zhí)行該命令來運行服務:
- systemctl start php7.0-fpm
現(xiàn)在,進入到Web瀏覽器,檢查你的網(wǎng)站。
如果你使用CloudFlare,看到如下圖所示的502 Bad Gateway錯誤,你的Web服務器極有可能是宕機了??梢試L試重啟Apache或Nginx,這取決于你使用哪種Web服務器。
cloudflare中的502 Bad Gateway錯誤
2. 清除緩存
如果已采用***個辦法,但還是看到502 Bad Gateway錯誤,那么你的Web瀏覽器仍依賴緩存。我們得告訴Web瀏覽器從網(wǎng)站加載***版本。為此,我們可以按下鍵盤上的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進程因使用高端內(nèi)存(high memory)而被服務器終結(jié)。這個終結(jié)過程會在一段時間后終止請求,這也會導致網(wǎng)站宕機。但是網(wǎng)站通常會自動可以訪問,因為這時PHP進程重新生成。為了***解決這個問題,要檢查哪個php腳本在使用高端內(nèi)存。
5. 檢查插件和主題
排查哪個插件導致錯誤很簡單。即使我們無法訪問WordPress后端,也可以通過重命名插件目錄,一次性禁用所有插件。為此,使用SSH連接到你的服務器。請注意:你也可以使用FTP客戶軟件(比如FileZilla)來執(zhí)行此操作。
解決502 Bad Gateway錯誤
你可以逐個啟用插件,按照以下步驟操作:
進入到wp-content目錄,我們可以看到?jīng)]有插件目錄,我們已對其重命名。
不妨創(chuàng)建一個插件目錄,并將一個插件移過去。這會自動啟用該插件。
解決wordpress中的502 Bad Gateway錯誤
有時,排查WordPress錯誤比我們想象的要容易,但有時也可能很難解決。
當然,如果你的WordPress VPS由服務提供商托管,無需為服務器操心,提供商的技術支持團隊會馬上幫你調(diào)查和解決這個502 Bad Gateway問題。他們隨時待命,能夠解答任何問題或要求。
原文標題:How to Fix the 502 Bad Gateway Error in WordPress
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】