如何修復 WordPress 網站上的 502 Bad Gateway 錯誤

已發表: 2017-09-01

說到 WordPress,有很多不同的錯誤可能會讓人非常沮喪和困惑。 一些浮現在腦海中的是死機白屏或建立數據庫連接的可怕錯誤。 但更流行的是 502 bad gateway 錯誤。 為什麼? 因為這種情況經常發生在整個網絡上,不僅是 WordPress 網站,甚至是 Gmail、Twitter 和 Cloudflare 等流行服務。 但是,當然,我們真的只關心它如何影響您的 WordPress 網站。 閱讀下面有關導致此錯誤的原因以及有關如何快速解決此錯誤的一些解決方案的更多信息。

  • 什麼是 502 錯誤網關錯誤?
  • 如何修復 502 Bad Gateway 錯誤

什麼是 502 錯誤網關錯誤?

502 Bad Gateway 錯誤具體表示服務器收到來自入站服務器的無效響應

Internet 工程任務組 (IETF) 將 502 Bad Gateway 錯誤定義為:

502 (Bad Gateway) 狀態代碼表示服務器在充當網關或代理時,在嘗試滿足請求時從它訪問的入站服務器接收到無效響應。

每次您訪問網站時,您的瀏覽器都會向網絡服務器發送一個請求。 Web 服務器接收並處理請求,然後將請求的資源連同 HTTP 標頭和 HTTP 狀態代碼一起發回。 通常,除非出現問題,否則不會看到 HTTP 狀態代碼。 它基本上是服務器通知您出現問題的方式,以及如何診斷它的代碼。

500 狀態錯誤代碼有很多種(500、501、502、503、504、508、520 等),含義略有不同。 這些表示請求已被接受,但服務器阻止了請求的完成。

Chrome 中的 502 錯誤網關錯誤
Chrome 中的 502 錯誤網關錯誤

查看我們的 502 錯誤視頻指南

502 錯誤網關錯誤變化

由於瀏覽器、Web 服務器和操作系統的不同,502 網關錯誤錯誤可能以多種不同的方式出現。 但它們都具有相同的含義。 以下只是您可能在網絡上看到的許多不同變體中的幾個:

  • “502錯誤的網關”
  • “錯誤 502”
  • “HTTP 錯誤 502 – 網關錯誤”
  • “502 服務暫時超載”
  • “502 代理錯誤”
  • 一個空白的白色屏幕
  • “502 服務器錯誤:服務器遇到臨時錯誤,無法完成您的請求”
  • “HTTP 502”
  • 臨時錯誤 (502)
  • 502. 這是一個錯誤
  • 502 網關錯誤 Cloudflare
  • 網關錯誤:代理服務器收到來自上游服務器的無效響應

您可能會看到的另一個變體是“502 服務器錯誤”。

Chrome 中的 502 服務器錯誤
Chrome 中的 502 服務器錯誤

這是另一個變體。 “502 – Web 服務器在充當網關或代理服務器時收到無效響應。 您要查找的頁面有問題,無法顯示。 當 Web 服務器(作為網關或代理)聯繫上游內容服務器時,它收到了來自內容服務器的無效響應。”

502- Web 服務器收到無效響應
502- Web 服務器收到無效響應

Twitter 等其他服務甚至可能會針對 502 Bad Gateway 錯誤顯示完全不同的消息,例如“Twitter 容量過剩”。 這絕對看起來更加用戶友好。

Twitter容量過剩
Twitter容量過剩(Img src:Softpedia)

這是谷歌如何顯示它的快照。 “502。 那是一個錯誤。 服務器遇到臨時錯誤,無法完成您的請求。 請在 30 秒後重試。 我們知道的就這些。”

谷歌 502 錯誤
谷歌 502 錯誤

502 錯誤對 SEO 的影響

與用於 WordPress 維護模式並告訴 Google 稍後再檢查的 503 錯誤不同,如果不立即修復,502 錯誤可能會對 SEO 產生負面影響。 如果您的網站僅停機了 10 分鐘,並且它被持續抓取了很多次,那麼抓取工具只會從緩存中獲取頁面。 或者,谷歌甚至可能沒有機會在它備份之前重新抓取它。 在這種情況下,你完全沒問題。

但是,如果站點長時間關閉,例如超過 6 小時,則 Google 可能會將 502 錯誤視為需要解決的站點級別問題。 這可能會影響您的排名。 如果您擔心重複 502 錯誤,您應該首先弄清楚它們發生的原因。 下面的一些解決方案可以提供幫助。

如何修復 502 Bad Gateway 錯誤

502 bad gateway 錯誤通常是網絡/服務器的問題,但也可能是客戶端問題。 所以我們將深入研究兩者。 查看這些常見原因以及修復 502 bad gateway 錯誤並重新啟動和運行的方法。

不要只管理您的網站錯誤——降低它們發生的風險。 免費試用 Kinsta。

1.嘗試重新加載頁面

遇到 502 bad gateway 錯誤時,您應該嘗試的最簡單和第一件事就是等待一分鐘左右並重新加載頁面(F5 或 Ctrl + F5)。 可能是主機或服務器只是過載了,該站點將立即恢復。 在等待期間,您也可以快速嘗試使用其他瀏覽器來排除問題。

您可以做的另一件事是將網站粘貼到 downforeveryoneorjustme.com。 該網站會告訴您該網站是否已關閉或您是否有問題。

壓倒所有人或只是我
壓倒所有人或只是我

2.清除瀏覽器緩存

每當您遇到此類問題時,最好清除瀏覽器緩存。 以下是有關如何在各種瀏覽器中執行此操作的說明:

  • 如何為所有瀏覽器強制刷新單個頁面
  • 如何清除谷歌瀏覽器的瀏覽器緩存
  • 如何清除 Mozilla Firefox 的瀏覽器緩存
  • 如何清除 Safari 的瀏覽器緩存
  • 如何清除 Internet Explorer 的瀏覽器緩存
  • 如何清除 Microsoft Edge 的瀏覽器緩存
  • 如何清除 Opera 的瀏覽器緩存

3. DNS 問題

502 網關錯誤也可能是由於 DNS 問題,例如域沒有解析到正確的 IP,或者 DNS 服務器沒有響應。 如果您剛剛將 WordPress 網站遷移到新主機,等待事情完全傳播很重要,在某些情況下可能需要長達 24 小時。 這取決於您的 DNS 記錄的 TTL 值。

您也可以嘗試刷新本地 DNS 緩存。 這類似於清除瀏覽器緩存。

在 Windows 中,只需打開命令提示符並輸入以下內容:

 ipconfig /flushdns 
命令提示符 - 刷新 DNS
命令提示符 - 刷新 DNS

如果有效,您應該會看到“已成功刷新 DNS 解析器緩存”。

對於 macOS 用戶,您可以在終端中輸入以下內容:

 dscacheutil -flushcache

注意:Mac 上沒有成功消息。

最後,您可以臨時更改您的 DNS 服務器。 默認情況下,DNS 服務器由您的 ISP 自動分配。 但是您可以嘗試將這些臨時更改為公共 DNS 服務器,例如 Google。 事實上,有些人更喜歡長期使用 Google 的公共 DNS。 如果您有高級 DNS 傳播,通常會快很多。

4. 與您的房東核實

我們通常看到 502 bad gateway 錯誤的主要原因是 Web 主機出現問題。 有時查詢、腳本或請求會花費太長時間,因此會被服務器取消或終止。 許多主機,尤其是共享主機實現了他們所謂的“終止腳本”。 基本上,它的作用是在一段時間後終止請求,這樣它就不會關閉站點或影響其他用戶。 如果你在 Twitter 上搜索“bad gateway”,你會看到每天都有成千上萬條推文提醒他們的託管公司這個問題。

502 錯誤網關推文
502 錯誤網關推文

您可能要考慮遷移到 Kinsta 之類的主機的一個原因是,我們的平台運行在一個隔離的軟件容器中,其中包含運行該站點所需的所有軟件資源(Linux、NGINX、PHP、MySQL)。 這意味著運行每個站點的軟件是 100% 私有的並且不共享,即使在您自己的站點之間也是如此。 這大大降低了看到 502 bad gateway 錯誤的機會。 我們沒有像某些共享主機那樣運行激進的終止腳本。 即使您的某個站點發生故障,也不會影響您的其他站點。

您可能會在主機上看到 502 網關錯誤的另一個原因也是由於服務器根本無法訪問,或者因為它已關閉或沒有連接。 在這種情況下,建議檢查您的 WordPress 主機的狀態頁面或打開支持票。

5. 暫時禁用 CDN 或防火牆

這也可能是您的內容交付網絡 (CDN) 或防火牆的問題。 如果您使用的是第 3 方 CDN 提供商,解決此問題的簡單方法是暫時禁用您的 CDN。 例如,我們是免費 CDN 啟用插件的忠實粉絲。 如果您正在使用它,您可以簡單地停用該插件,然後測試您的網站。 wp-admin 不工作? 只需通過 SFTP 登錄到您的站點並將插件的文件夾重命名為 cdn-enabler_old。 這將暫時禁用 CDN 連接。 WP Rocket 或您可能已連接到 CDN 的任何其他插件也是如此。

臨時重命名插件文件夾
臨時重命名插件文件夾

有時,提供 DDoS 保護和緩解或 Cloudflare 等完全代理服務的提供商也會發生這種情況,因為它們之間有額外的防火牆。 我們注意到在 Cloudflare 免費計劃中偶爾會發生這種情況。 不幸的是,由於 Cloudflare 是一項完全代理服務,因此沒有快速的方法可以簡單地禁用它。

但是,在指責 Cloudflare 之前,重要的是要知道 Cloudflare 有兩種不同類型的 502 錯誤網關錯誤變體,如下所示:

Cloudflare 的 502 錯誤網關(變體 1)

如果您看到以下屏幕,這實際上是 Cloudflare 的問題,在這種情況下,您應該聯繫他們尋求支持。 您還可以查看 Cloudflare 的狀態頁面,了解他們當前是否遇到中斷。

502 網關錯誤
502 網關錯誤

Cloudflare 的 502 錯誤網關(變體 2)

如果您看到以下屏幕,則說明您的主機有問題。

Cloudflare 502 主機上的網關錯誤
Cloudflare 502 主機上的網關錯誤

GoDaddy 防火牆

這是 HTTP 502 錯誤和 GoDaddy 防火牆的另一個示例。 由於超時,問題實際上與原始服務器(託管服務提供商)有關,而不是防火牆本身。

HTTP 502 - GoDaddy 防火牆
HTTP 502 – GoDaddy 防火牆

6. 檢查你的插件和主題

很多時候,服務器取消腳本和查詢的原因是由於 WordPress 網站上的錯誤代碼,可能來自 3rd 方插件或主題。 我們還看到很多配置錯誤的緩存插件會產生 502 錯誤。 解決此問題的幾種方法是停用所有插件。 請記住,如果您只是停用插件,您不會丟失任何數據。

不要只管理您的網站錯誤——降低它們發生的風險。 免費試用 Kinsta。

如果您仍然可以訪問您的管理員,一個快速的方法是瀏覽到“插件”並從批量操作菜單中選擇“停用”。 這將禁用所有插件。 如果這解決了問題,您將需要找到罪魁禍首。 開始一一激活,每次激活後重新加載站點。 當您看到 502 網關錯誤返回時,您已經找到了行為不端的插件。 然後,您可以聯繫插件開發人員尋求幫助或在 WordPress 存儲庫中發布支持票。

停用所有插件
停用所有插件

如果您無法訪問您的管理員,您可以通過 FTP 訪問您的服務器並將您的插件文件夾重命名為 plugins_old 之類的名稱。 然後再次檢查您的網站。 如果它有效,那麼您將需要一個一個地測試每個插件。 將您的插件文件夾重命名為“plugins”,然後將其中的每個插件文件夾一一重命名,直到找到它為止。

重命名插件文件夾
重命名插件文件夾

始終確保您的插件、主題和 WordPress 核心是最新的。 並檢查以確保您正在運行受支持的 PHP 版本。 您可以隨時聯繫您的房東尋求幫助。 我們在 Kinsta 使用 Kinsta APM 和其他故障排除方法來幫助客戶縮小可能導致錯誤的插件、查詢或腳本的範圍。 如果您有自己的許可證,也可以使用自己的自定義 New Relic 密鑰。

對數據庫的耗時查詢
對數據庫的耗時查詢

如果結果證明是插件中的有效查詢或錯誤代碼,您可能需要引入 WordPress 開發人員來解決問題。

7.檢查日誌

您還應該利用錯誤日誌。 如果您是 Kinsta 客戶端,您可以在 MyKinsta 儀表板的日誌查看器中輕鬆查看錯誤。 這可以幫助您快速縮小問題範圍,特別是如果它是由您網站上的插件引起的。

檢查錯誤日誌以了解 502 錯誤網關錯誤
檢查錯誤日誌以了解 502 錯誤網關錯誤

如果您的主機沒有日誌記錄工具,您還可以將以下代碼添加到 wp-config.php 文件以啟用日誌記錄:

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

如果您需要有關如何啟用 WordPress 調試模式的更多幫助,這裡有一個完整的分步教程。

日誌通常位於 /wp-content 目錄中。 其他人,比如 Kinsta 的這裡,可能有一個名為“logs”的專用文件夾。

wordpress 錯誤日誌文件夾 sftp

您還可以查看 Apache 和 NGINX 中的日誌文件,這些文件通常位於此處:

  • 阿帕奇: /var/log/apache2/error.log
  • NGINX: /var/log/nginx/error.log

如果您是 Kinsta 客戶,您還可以利用我們的分析工具來細分 502 錯誤的總數,並查看它們發生的頻率和時間。 如果這是一個持續存在的問題,或者可能已經自行解決,這可以幫助您進行故障排除。

響應分析500錯誤分解
響應分析500錯誤分解

8.重啟PHP

最後,您也可以嘗試重新啟動 PHP。 如果您是 Kinsta 客戶端,您可以輕鬆地從 MyKinsta 儀表板中的工具菜單重新啟動 PHP。 如果您的主機不提供此功能,您可以隨時打開支持票並要求他們重新啟動 PHP。

重啟 PHP
重啟 PHP

9. PHP 超時問題

如果單個 PHP 進程運行的時間超過服務器上 PHP 配置中設置的max_execution_timemax_input_time ,則會發生 PHP 超時。 如果您正在執行大型 WordPress 導入,這很常見。 發生這種情況時,通常會顯示 502 服務器錯誤。 如果遇到 PHP 超時,可能需要提升這些值。

您可以向您當前的 WordPress 主機查詢您的服務器上設置了哪些值以及是否可以增加這些值。 在 Kinsta 平台上,這些值默認設置為 300 秒(5 分鐘)。 我們平台上可用的最大 PHP 超時值取決於您當前的託管計劃。

概括

如您所見,您可以做很多事情來解決和修復 WordPress 網站上的 502 網關錯誤。 通常這不是在客戶端,而是您的主機的問題。 帶有錯誤代碼或未優化查詢的第三方插件和主題也是需要注意的。 我們錯過了什麼嗎? 也許您有另一個解決 502 網關錯誤的技巧。 如果是這樣,請在下面的評論中告訴我們。