當涉及到WordPress時,會有很多不同的錯誤,這些錯誤可能會讓您感到沮喪和困惑。想到的是死亡的  白屏  或建立資料庫連接的可怕  錯誤。但是更受歡迎的是502錯誤網關錯誤。為什麼?因為這種情況經常發生在整個網路上,不僅在WordPress網站上,甚至在Gmail,Twitter和Cloudflare等熱門服務上也是如此。但是當然,我們實際上只關心它如何影響您的WordPress網站。請在下面閱讀更多有關導致此錯誤的原因以及如何快速解決該錯誤的一些解決方案。

什麼是502錯誤網關錯誤?

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

有許多不同類型的500個狀態的錯誤代碼(500501502503504520等),其都具有略微不同的含義。這些表明請求已被接受,但是伺服器阻止了請求的實現。在這種情況下,錯誤的502錯誤網關錯誤意味著一台伺服器充當網關或代理時, 已從入站伺服器收到無效的響應RFC 7231,第6.6.3節)。

502-bad-gateway-error-chrome

Chrome中的502錯誤的網關錯誤

502錯誤的網關錯誤變化

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

  • 「502錯誤的網關」
  • 「錯誤502」
  • 「 HTTP錯誤502 –錯誤的網關」
  • 「 502服務暫時超載」
  • 「 502代理錯誤」
  • 黑屏
  • 「 502伺服器錯誤:伺服器遇到臨時錯誤,無法完成您的請求」
  • 「 HTTP 502」
  • 臨時錯誤(502)
  • 502.那是一個錯誤
  • 502錯誤的網關Cloudflare
  • 錯誤的網關:代理伺服器收到來自上游伺服器的無效響應

您可能會看到的另一種變化是「 502伺服器錯誤」。

502-server-error

Chrome中的502伺服器錯誤

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

502-web-server-received-an-invalid-response

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

其他服務(例如Twitter)甚至可能針對502 Bad Gateway錯誤顯示完全不同的消息,例如「 Twitter容量過大」。這肯定看起來更加用戶友好。

twitter-is-over-capacity

Twitter容量過大(Img src:  Softpedia)

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

google-502-error

Google 502錯誤

502錯誤對SEO的影響

503錯誤(用於WordPress維護模式並告訴Google稍後再檢查)不同,502錯誤(如果未立即解決)可能會對SEO產生負面影響。如果您的網站僅在10分鐘之內就無法正常運行,並且多次被一致地爬網,則爬網程序只會從緩存中獲取頁面。否則Google甚至可能沒有機會在備份之前重新抓取它。在這種情況下,您完全可以。

但是,如果該網站關閉了很長一段時間(例如6個多小時),則Google可能會看到502錯誤,這是需要解決的網站級問題。這可能會影響您的排名。如果您擔心重複502錯誤,應該弄清楚為什麼會這樣。以下某些解決方案可以提供幫助。

如何修復502 Bad Gateway錯誤

502錯誤的網關錯誤通常是網路/伺服器的問題,但是,它也可能是客戶端的問題。因此,我們將深入探討兩者。找出這些常見原因和方法來修復502錯誤網關錯誤並重新啟動並運行。

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

1.嘗試重新載入頁面

遇到502錯誤的網關錯誤時,您應該嘗試的最簡單且第一件事就是簡單地等待一分鐘左右,然後  重新載入頁面  (F5或Ctrl + F5)。可能是主機或伺服器只是過載,站點將立即恢復正常。在等待時,您也可以快速嘗試使用其他瀏覽器以排除該問題。

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

downforeveryoneorjustme

永遠失望或正義

2.清除瀏覽器緩存

每當遇到此類問題時,最好清除瀏覽器緩存。

3. DNS問題

502網關錯誤也可能是由於DNS問題,例如域未解析為正確的IP。如果您剛剛將WordPress網站遷移到了新主機,那麼重要的是要等待事件完全傳播,在某些情況下,這可能需要長達24小時的時間。這取決於您的DNS記錄的TTL值。

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

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

ipconfig / flushdns
command-prompt-flush-dns-e1504247136564

命令提示符–刷新DNS

如果工作正常,您應該會看到「已成功刷新DNS解析器緩存」。

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

dscacheutil -flushcache

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

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

4.向您的房東查詢

我們通常會看到502錯誤的網關錯誤的主要原因是由於Web主機出現問題。有時  查詢,腳本或請求將花費很長時間  ,因此伺服器其取消或殺死。許多主機(尤其是共享主機)實現了所謂的「殺死腳本」。基本上,它的作用是在一段時間後終止請求,這樣就不會使網站癱瘓或影響其他用戶。如果您在Twitter上搜索「 錯誤的網關 」,則每天會看到成千上萬條推文,向其託管公司發出警報。

502-bad-gateway-tweets

502錯誤的網關推文

您可能要考慮移至類似Kinsta之類的主機的一個原因是,我們的平台在隔離的軟體容器  中運行,該  容器包含運行該站點所需的所有軟體資源(Linux,NGINX,PHP,MySQL)。這意味著運行每個站點的軟體  都是100%私有的,即使在您自己的站點之間也不會共享。這大大減少了出現502錯誤網關錯誤的機會。我們沒有像某些共享主機那樣運行激進的kill腳本。即使您的一個站點確實發生故障,也不會影響其他站點。

您可能會看到主機出現502網關錯誤的另一個原因還在於伺服器根本無法訪問,原因是伺服器已關閉或沒有連接。在這種情況下,建議檢查WordPress主機的  狀態頁  或打開支持通知單。

5.暫時禁用CDN或防火牆

您的內容交付網路(CDN)或防火牆也可能有問題  。如果您使用的是第三方CDN提供商,解決此問題的一種簡便方法是暫時禁用CDN。例如,我們是免費CDN啟動器插件的忠實擁護者。如果您使用的是,則只需停用插件,然後測試您的站點即可。如果您無法訪問站點的儀錶板,只需通過SFTP登錄到站點,然後將插件的文件夾重命名為cdn-enabler_old。這將暫時禁用CDN連接。WP Rocket或您可能已連接到CDN的任何其他插件也是如此。

rename-plugin-temporarily

臨時重命名插件文件夾

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

但是,在歸咎於Cloudflare之前,務必要了解Cloudflare有兩種不同類型的502錯誤網關錯誤變化,如下所示:

502 Cloudflare的錯誤網關(版本1)

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

502-bad-gateway-cloudflare-error

502錯誤的網關錯誤

502 Cloudflare的錯誤網關(版本2)

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

cloudflare-502-bad-gateway-host-1

主機上的Cloudflare 502錯誤網關

GoDaddy防火牆

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

godaddy-firewall-e1560784840822-1

HTTP 502 – GoDaddy防火牆

6.檢查您的插件和主題

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

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

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

deactivate-all-plugins-1

停用所有插件

如果您無法訪問管理員,則可以通過FTP進入伺服器,然後將plugins文件夾重命名為plugins_old之類。然後再次檢查您的站點。如果可行,則需要一個接一個地測試每個插件。將您的插件文件夾重命名為「 plugins」,然後逐個重命名每個插件文件夾,直到找到為止。

rename-plugin-folder-1

重命名插件文件夾

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

time-consuming-database-calls

耗時的資料庫查詢

如果事實證明是有效的查詢或插件中的錯誤代碼,則可能需要請  WordPress開發人員  來解決此問題。

7.檢查日誌

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

check-wordpress-error-logs-502-bad-gateway

檢查錯誤日誌以查找502錯誤的網關錯誤

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

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

如果您需要有關如何啟用WordPress調試模式的更多幫助,請參閱完整的分步教程

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

wordpress-error-logs-folder-sftp

您還可以檢查Apache和NGINX中的日誌文件,它們通常位於以下位置:

  • Apache:  /var/log/apache2/error.log
  • NGINX:  /var/log/nginx/error.log

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

response-analysis-500-error-breakdown

響應分析500錯誤細目

8.重新啟動PHP

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

restart-php-1

重新啟動PHP

9. PHP超時問題

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

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

摘要

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