如何修復 WordPress 中的 502 Bad Gateway 錯誤

已發表: 2020-05-09

運行網站最令人沮喪的方面之一是在您不知道錯誤發生的原因時必須對其進行故障排除。 某些問題(例如 502 錯誤網關錯誤)有許多潛在原因。 這意味著您可能需要嘗試多種解決方案,然後才能找到正確的解決方案。 在這篇文章中,我們將向您展示如何導航並解決這個棘手的錯誤。

讓我們開始工作吧!

訂閱我們的 YouTube 頻道

502 錯誤網關錯誤是什麼(以及為什麼會發生)

502 錯誤網關錯誤在起作用。

502 bad gateway 錯誤會時不時地彈出,這通常意味著您的服務器有問題。

當您訪問一個網站時,您的瀏覽器會向託管該網站的服務器發送一個或多個請求。 如果一切正常,該服務器將發回您的瀏覽器要求的信息,然後網站將加載。 另一方面,當服務器發回“無效”響應時,會發生 502 bad gateway 錯誤。 這可能意味著連接超時,或者可能是其他幾個問題的結果。

來自 Mozilla Developer Network,官方定義是:

超文本傳輸協議 (HTTP) 502 錯誤網關服務器錯誤響應代碼表示服務器在充當網關或代理時從上游服務器收到無效響應。

到目前為止,這聽起來可能很簡單。 但是,您的瀏覽器和大多數網站之間的連接不像以前那麼簡單了。 例如,您的瀏覽器的請求可能會在到達相關主機之前通過代理服務器進行路由,因此可能很難確定問題所在的位置。 許多網站還使用多個服務器,這使事情變得更加複雜,因為其中任何一個都可能是 502 錯誤的原因。

所有這些都意味著這個特定的錯誤代碼有一些潛在的原因。 這可能是以下結果:

  • 數據庫中的錯誤。
  • 超時、當前不可用或無法按預期工作的服務器。
  • 服務器因請求過多而過載。 也許是 DDOS 攻擊,或者甚至只是超出預期的流量高峰。
  • 您的反向代理服務器有問題。
  • 錯誤的 PHP 腳本,由您的插件或主題之一提供。

好消息是,如果問題出在服務器端,您可能不需要採取任何措施。 在這些情況下,您的託管服務提供商通常會迅速採取行動(因為客戶往往不喜歡停機時間)。 在收到您的網站受到 502 錯誤影響的通知後,您應該確保盡快聯繫您的主機的支持團隊。

考慮到這一點,我們將重點關注如果 502 錯誤網關錯誤不會自行迅速消失該怎麼辦。 畢竟,大多數網站無法承受一次停機數小時,因此,如果此錯誤持續存在,則是時候開始進行故障排除了。

如何修復 502 Bad Gateway 錯誤

在您進入故障排除模式之前,您可以運行一項快速測試來確定您的服務器是否正常響應。 您可以嘗試運行 traceroute,以首先查看您的服務器是否可以訪問。 如果是,那麼問題可能出在你的身上。 如果沒有,此時您可能需要與您的託管服務提供商取得聯繫。

您還應該嘗試重置您的路由器,並檢查您的域名系統 (DNS) 設置。 這些是有時可以使 502 錯誤消失的基本修復,而且它們很容易由您自己解決。 但是,如果您發現兩種解決方案都無法解決問題,則可以使用以下方法來解決 502 錯誤。

清除瀏覽器緩存

當您嘗試訪問您的網站時,即使根本問題已得到解決,也可能會出現 502 錯誤。 如果您的瀏覽器依賴其緩存,而不是從服務器加載最新版本的站點,則會發生這種情況。

簡單地重新加載站點幾次通常可以解決問題。 特別是如果您通過 Windows 上的 Shift-CTRL-R 或 Mac 上的 Shift-CMD-R 使用強制重新加載。

如果以上所有方法都失敗,您應該繼續手動清空瀏覽器的緩存。 Chrome 用戶可以通過導航到“設置”>“高級”菜單並找到“清除瀏覽數據”選項來執行此操作:

清除瀏覽器的緩存。

在“基本”選項卡下查找“緩存圖像和文件選項,選擇後單擊“清除數據” 。 請記住,如果您在單擊“清除數據”按鈕之前未禁用該設置,則此菜單還將刪除您的瀏覽歷史記錄。

使用 Firefox、Safari、Internet Explorer 和幾乎任何其他瀏覽器也可以完成相同的過程。 清除緩存後,再次嘗試重新加載您的網站。 如果錯誤仍然存在,就該嚴肅對待了。 有關清除緩存的更多信息,您可以在 Hubspot 的主題中心頁面找到它。

暫時禁用您的內容交付網絡 (CDN)

之前,我們提到您的瀏覽器請求有時會通過反向代理服務器進行路由。 換句話說,使用代理服務器會在用戶的瀏覽器和網站的服務器之間放置一個中介。

某些服務,例如內容交付網絡 (CDN),依靠反向代理技術盡可能有效地路由傳入流量。 但是,有時當您嘗試連接到網站的源服務器時,這個額外的層會產生問題。 發生這種情況時,您的訪問者(和您)可能會遇到可怕的 502 錯誤網關錯誤。

幸運的是,檢查並查看您的 CDN 是否導致此問題很容易。 您所要做的就是暫時禁用該服務,然後在沒有它的情況下測試您的網站是否可以正確加載。 禁用 CDN 的過程因您使用的服務而異,但通常很簡單。

例如,Cloudflare 用戶只需導航到儀表板中的概覽選項卡。 在裡面,您會找到運行服務的屬性列表。 然後,您需要在“暫停網站”部分中查找大的“暫停”按鈕,然後單擊它:

暫停您的 CDN 服務。

現在,當您嘗試訪問您的網站時,其源站服務器將響應該請求,而不會受到任何中間人的阻礙。 如果 502 錯誤消失,那麼您的 CDN 可能是問題的根源。 在大多數情況下,您只需等待幾個小時即可重新啟用該服務。 當然,一定要檢查並確保之後錯誤仍然消失。

如果您使用其他 CDN,則需要查看其文檔以獲取有關如何暫時禁用該服務的說明。 但是,如果結果證明您的 CDN 不是問題,那麼您還可以嘗試另一種修復方法。

測試 WordPress 主題和插件

到目前為止,我們已經討論了 502 錯誤背後的三個潛在原因:您的服務器、您的瀏覽器和 CDN 等中間人服務。 如果您確定問題出在您的一端,那就只有一種選擇,那就是您的網站。 如果您專門運行 WordPress,則您的插件或主題之一可能會嘗試執行您的服務器無法正確加載的腳本。 當您的瀏覽器發送請求時,這可能會導致無效響應,從而觸發 502 錯誤。

您一次只能有一個活動主題,因此您可以簡單地停用當前主題並暫時切換到默認的 WordPress 主題,看看是否能解決錯誤。 另一方面,確定插件是否導致問題可能需要更多時間,具體取決於當前活動的插件數量。

由於該錯誤,您目前無法訪問儀表板,因此您需要手動禁用插件和主題。 請記住,此過程不涉及刪除插件和主題,重新激活它們只需要片刻時間。 因此,您網站的功能不應該受到影響。 即便如此,您還是應該準備好最近的備份以防萬一。

然後,打開您選擇的 FTP 客戶端。 我們是 FileZilla 的忠實粉絲,因此我們將使用它作為示例。 通過 FTP 登錄您的網​​站,然後導航到public_html – wp-content – plugins文件夾。 每個安裝的插件都應該有一個文件夾——即使是那些不活動的插件:

您的 WordPress 插件目錄。

如果您右鍵單擊這些文件夾中的任何一個,您將看到多個選項,包括一個標記為Rename 的選項。 現在單擊它,並將文件夾的名稱更改為disabled.pluginname 之類的名稱:

禁用的 WordPress 插件。

當您現在訪問您的網站時,WordPress 將無法找到該插件,因此它會在沒有它的情況下加載。 如果您剛剛停用的插件導致 502 錯誤,您的網站應該可以正確加載。 為確定起見,請記住在重新加載站點之前使用 CTRL + F5 命令(或 OS X 等效命令)強制瀏覽器刪除其緩存。

為避免混淆,您應該一次對一個插件進行故障排除。 更改文件夾的名稱,嘗試重新加載您的網站,看看它是否仍然顯示 502 錯誤。 如果是,請恢復文件夾的原始名稱。 對每個文件夾重複此過程,直到找到導致錯誤的文件夾,或者直到您測試了每個插件。 您可以使用相同的過程來測試您的活動主題,這將強制 WordPress 使用其默認主題之一。

如果你的插件或主題之一導致502錯誤,你可以完全刪除它,並尋找一個替代品。 如果它已過時,您也可以嘗試更新它,看看是否能解決問題。 在某些情況下,問題腳本會很快得到修補,因此您以後可以隨時繼續使用該插件或主題。

其他快速(潛在)修復

現在,如果 502 錯誤是由您端的某些原因而不是服務器端引起的,則上述這些修復程序可能會找到並修復罪魁禍首。 如果它沒有消失,請記住,我們建議您聯繫您的網絡主機,讓他們對服務器進行分類並診斷那裡的任何問題。

也就是說,您可以通過執行一些快速檢查來幫助加快流程。

這些檢查中的第一個是您的站點可能已保存的任何日誌。 如果是 WordPress,則有多種查看方式。 我們有一篇關於使用這些日誌來改進您的網站的可靠文章,在這裡可能會有所幫助。 運行 5.0 或更高版本的 WP 站點配備了站點運行狀況工具,您可以在管理儀表板中檢查該工具,因此請確保您看到它所說的內容。

您還可以確保瀏覽器的 cookie 是清晰的。 這些與緩存完全分開,我們並不總是想清除它們。 如果您將任何信息保存在瀏覽器中,這會將其清除。 但是這些相同的 cookie 也可能對您和這些站點之間的連接進行 502,因此它可以是 Catch-22。 無論哪種方式,在任何主要瀏覽器中清除 cookie 都非常容易。

如果您的網站停止運行,則可能是後台有些內容需要更多時間來執行。 您可以通過編輯您的functions.php文件來增加WordPress 站點允許的執行時間。 如果您不在 WP 上,您也可以通過.htaccessphp.ini來完成。 Thimpress 有一個關於如何完成這一切的很好的指南。

最後,您可以檢查 DNS 錯誤。 這意味著您已經移動了主機或更改為不同類型的計劃或服務器本身。 您可能已經調整了名稱服務器或任何可能出錯的事情。 DNS 設置非常具體,容易出現配置錯誤。 因此,進入您的 cPanel 或儀表板,確保您的主機和域註冊商之間的所有內容以及您網站本身的設置都一致。 有時,電線被交叉或一個錯字會阻止其軌道上的一切。 在這裡進行一點 DNS 校對可以大有幫助。

如果您真的有興趣確保您的 DNS 正常,您可以啟動終端並手動刷新您的 DNS 緩存。

結論

對 WordPress 錯誤進行故障排除通常比您想像的要容易。 即使是有很多潛在原因的問題,例如 502 錯誤網關錯誤,也得到了很好的理解和記錄。 在找到一個可行的解決方案之前,您可能需要嘗試多種解決方案,但如果您按照正確的說明進行操作,故障排除過程應該不會花費太長時間。

如果您在網站上遇到 502 bad gateway 錯誤,並且幾分鐘後(或在快速致電您的主機支持團隊後)仍未消失,則問題很可能出在您的身上。 只需完成我們上面提到的流程和技巧,您和您的用戶就會立即回到您的網站上。

您是否曾經在您的網站之一上遇到過 502 錯誤網關錯誤? 在下面的評論部分與我們分享您的經驗!

風輪/shutterstock.com 的文章縮略圖。