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