- 錯誤型別:
- HTTP錯誤
- 錯誤名稱:
- 504网关超时错误
- 英文名稱:
- HTTP ERROR 504
- 錯誤描述:
- 在504网关超时错误是最常见的HTTP的一个5XX面临网站所有者和网站访问者的错误。
- 錯誤變體:
- 504 Gateway Timeout504 Gateway Timeout NGINXNGINX 504 Gateway TimeoutGateway Timeout ErrorError 504HTTP Error 504HTTP Error 504 — Gateway TimeoutHTTP 504504 ErrorGateway Timeout (504)This page isn’t working — Domain took too long to respond504 Gateway Time-out — The server didn’t respond in time白屏
在504閘道器超時錯誤(504 Gateway Timeout Error)是最常見的HTTP的一個5XX面臨網站所有者和網站訪問者的錯誤。對於許多WordPress部落格和電子商務平臺,瞭解如何修復此類伺服器錯誤對於防止來之不易的訪問者跳轉到競爭對手網站至關重要。
由於504 Gateway Timeout錯誤沒有告訴您發生的原因,因此很難確定導致伺服器超時的原因。本文將幫助您詳細瞭解它,瞭解如何診斷其原因,然後修復它。
在嘗試了文章中提到的所有各種解決方案後,您的網站應該立即啟動並執行。
什麼是504閘道器超時錯誤?
每次您在瀏覽器中訪問網站時,瀏覽器都會向託管該網站的Web伺服器傳送請求。伺服器處理請求並使用請求的資源進行響應。
HTTP請求和響應的工作原理
伺服器響應包括許多HTTP狀態程式碼之一,以向瀏覽器指示響應的狀態。但並非所有這些 HTTP 狀態程式碼都是錯誤。例如,200 OK狀態程式碼意味著伺服器成功處理了請求並且“一切正常”。
在5XX類的HTTP狀態程式碼表示什麼的錯誤的伺服器,該伺服器是意識到這一點,並不能進行客戶端的請求。因此,它們也稱為伺服器錯誤5xx狀態程式碼。
正式地,在5xx類下指定了五個狀態程式碼(500、501、502、503、 504 )。您也可能會遇到許多非官方程式碼(506 、 507 、 509、520等)。
IETF將504閘道器超時錯誤定義為:
504(閘道器超時)狀態程式碼表示伺服器在充當閘道器或代理時,沒有收到來自它需要訪問以完成請求的上游伺服器的及時響應。
從技術上講,504 閘道器超時是伺服器作為閘道器或代理出現的伺服器端錯誤。這意味著伺服器在等待需要與之通訊的下一個伺服器的響應時超時,因此沒有完成要求它完成的操作。
用不太專業的術語來解釋是什麼意思?
事情是這樣發生的。讓我們深入瞭解一下整個過程。
當你訪問一個網站時,典型的過程是你的瀏覽器所使用的伺服器向你要訪問的網站的伺服器傳送一個請求。這個請求會讓接收伺服器(通常稱為 “上游伺服器”)知道要開始載入你想看的網站。在這種情況下,你的伺服器就是閘道器。你的伺服器等待上游伺服器做出響應併傳送資料。如果上游伺服器沒有及時響應,你將看到 504 Gateway Timeout(閘道器超時)錯誤資訊,而不是你的目標網站。
“閘道器” 和 “上游伺服器” 圖中的時鐘符號表示所花費的時間。
有時錯誤可以自行解決,但有時可能需要進入不同的系統才能修復。
為了進一步簡化,當兩個伺服器參與處理請求時會發生此錯誤。第一個伺服器(通常是主伺服器)超時,等待第二個伺服器(上游伺服器)的響應。
504閘道器超時錯誤以各種形式表現出來。以下是它通常出現的一些方式:
Chrome瀏覽器中的“HTTP ERROR 504”
504 Gateway Timeout錯誤類似於502 Bad Gateway錯誤,表示第一臺伺服器收到了來自第二臺伺服器(上游伺服器)的無效響應。
Chrome DevTools中的“504 GATEWAY TIMEOUT”狀態程式碼
504閘道器超時錯誤的變體
瀏覽器會在其中顯示任何 504 Gateway Timeout 錯誤,就像任何其他錯誤一樣。由於有各種作業系統、Web 伺服器、瀏覽器和使用者代理,因此它可以以多種方式顯示。
以下是您可能遇到的一些常見 504 錯誤訊息變體:
- 504 Gateway Timeout
- 504 Gateway Timeout NGINX
- NGINX 504 Gateway Timeout
- Gateway Timeout Error
- Error 504
- HTTP Error 504
- HTTP Error 504 — Gateway Timeout
- HTTP 504
- 504 Error
- Gateway Timeout (504)
- This page isn’t working — Domain took too long to respond
- 504 Gateway Time-out — The server didn’t respond in time
- 白屏
有時,錯誤的描述性可能會稍差一些,不使用數字程式碼,例如:
- “This page isn’t working. Domain took too long to respond.”
- “The page request was canceled because it took too long to complete”
- “There was an issue serving your request, please try again in a few minutes”
- “There was a gateway timeout. You should visit your error log for more information”
網站所有者甚至可以自定義使用者在使用網站時遇到 504 錯誤時顯示的頁面,這意味著你可能會得到一個使用了上述程式碼和內容組合的精美品牌頁面。
Web伺服器和網站可以自定義向使用者顯示504閘道器超時錯誤的方式。其中一些可能很酷!這是平息訪客失望的絕妙策略。
GitHub的自定義HTTP 504錯誤頁面
其他時候,你可能只會看到一個空白的螢幕!因為 504 錯誤很常見,所以不妨假設空白頁面是由於伺服器超時造成的,然後使用本指南稍後提供的步驟進行糾正。
504閘道器超時錯誤對SEO的影響
所有5xx錯誤都會阻止網頁載入,從而對使用者體驗不利。因此,像谷歌這樣的搜尋引擎會認真對待這些錯誤。如果錯誤持續很長時間,它甚至可能導致從搜尋引擎結果中取消對網頁的索引。
例如,當Google蜘蛛偶然發現503 Service Unavailable錯誤時,他們會明白這是一個臨時問題,因為它主要用於啟用站點維護模式。因此,他們稍後會再次嘗試抓取該頁面。
504閘道器超時錯誤不一定是暫時的,因為它可能是由多種原因造成的。如果您的網站僅關閉幾分鐘,並且蜘蛛程式每分鐘都嘗試多次抓取它,它們將嘗試從快取中提供該頁面。他們甚至不會注意到它。
但是,如果您的網站停機6個多小時或更長時間,那麼Google會將504錯誤視為您需要儘快修復的嚴重網站範圍問題。這會對您的SEO產生負面影響。
在Google Search Console中檢視抓取錯誤
Google Search Console是監控網站HTTP 5xx錯誤的最佳SEO工具之一。
504閘道器超時錯誤原因
由於504錯誤是由於伺服器之間的超時造成的,因此問題可能不在於客戶端的裝置或網際網路連線。這還包括您的裝置和連線。
504閘道器超時錯誤表示Web伺服器等待來自另一臺伺服器的響應時間過長並且“超時”。此超時可能有多種原因:另一臺伺服器執行不正常、過載或關閉。
另一個伺服器不必總是在外部(例如CDN、API閘道器)。它也可以是主Web伺服器(例如反向代理伺服器、資料庫伺服器)內的類似伺服器的實體。
504 錯誤之所以如此常見,是因為伺服器時間問題的發生有多種原因。
以下是許多最常見的潛在問題:
- 伺服器故障:由於流量增加、維護、硬體故障等各種原因,伺服器經常出現故障或速度變慢。如果您需要協同工作來載入網站的任何伺服器出現故障,您很可能會因為時間問題而看到錯誤。
- 資源限制:如果您的網站流量增加,即使流量來自合法來源,也可能超出您當前設定所能處理的範圍。
- 其他更普遍的干擾:在載入網站時,除了伺服器正常執行時間外,還有很多其他因素可能會導致網站出錯。路由器可能出現故障,裝置可能出現故障,等等。任何一種情況都可能導致伺服器與伺服器之間的連線癱瘓,使你陷入 504 監獄。
- 代理伺服器問題:代理伺服器可以增加一層安全性,但有時也會中斷閘道器與上游伺服器之間的通訊。
- 防火牆混亂:防火牆,尤其是那些有額外安全措施或自定義配置的防火牆,可能會錯誤地阻止某些連線,認為它們是攻擊。如果使用防火牆限制某些網際網路服務提供商(ISP)或內容交付網路(CDN),這種情況可能會更多。
- DNS 問題:有時,域名系統 (DNS) 伺服器無法將正確的域名與正確的 IP 地址相匹配。這可能是由於最近的 IP 變更、舊 DNS 資訊被快取或 DNS 配置錯誤造成的。
- 網站程式碼錯誤:網站程式碼中的錯誤可能會導致您的伺服器或下游伺服器無法準確地相互通訊,從而在無法解決通訊錯誤時導致超時。
- PHP Worker 限制:在 WordPress 中,PHP Worker 是幫助向訪問者提供網站內容的程序。如果您沒有足夠的這些程序來跟上流量,伺服器可能需要 “排隊 “才能響應請求,這很可能會導致超時。
如何修復504閘道器超時錯誤
如果不瞭解WordPress站點的確切詳細資訊,例如其伺服器配置、託管計劃、第三方外掛及其吸引的流量,您可能會發現修復504閘道器超時錯誤令人沮喪和不知所措。
由於涉及許多變數,我建議您首先修復客戶端問題,這非常罕見,然後轉向修復伺服器端問題。他們通常是 504 錯誤的罪魁禍首。
嘗試重新載入網頁
遇到504閘道器超時錯誤時,您可以嘗試的第一件事是等待幾分鐘,然後嘗試重新載入頁面。
您可以按F5鍵盤快捷鍵在大多數瀏覽器中重新整理/重新載入網頁。要在重新載入之前刪除頁面的瀏覽器快取,您可以改為按CTRL+F5快捷鍵組合。
以下是一些主流瀏覽器的頁面重新整理或者重新載入的快捷鍵:
- Google Chrome 瀏覽器(Mac):Command + R
- Google Chrome 瀏覽器(Win):Ctrl + R
- Safari(目前僅支援 Mac):Command + R
- Microsoft Edge 瀏覽器(Win):CTRL+R
- Microsoft Edge 瀏覽器(Mac):Command + Shift + R

在此期間,您還可以嘗試在不同的瀏覽器中載入該站點,以排除該問題。由於大多數504錯誤是由於伺服器暫時過載造成的,因此使用此解決方案應該會讓您的網站立即恢復。
如果等待並重新載入站點不能解決504錯誤問題,您可以檢查站點是否對所有人或只有您自己關閉。用於測試站點停機時間的兩個有用的線上工具是Down for Everyone or Just Me和Is It Down Right Now?
測試wbolt.com線上狀態
重新啟動您的網路裝置或者切換/重啟裝置和瀏覽器
有時,調變解調器或路由器等網路裝置的問題可能會導致504閘道器超時錯誤。重新啟動這些裝置可以幫助您解決問題。
雖然您可以按任意順序關閉所有這些網路裝置,但重新開啟它們的順序很重要。通常,按照從Internet服務提供商到您的主要客戶端裝置的連線順序,從“由外到內”開啟這些裝置。
除了網路裝置外,您的電腦或者瀏覽器也可能是問題的根源。因為硬體錯誤、過期快取和其他非常簡單的故障都可能中斷伺服器連線並導致與超時有關的錯誤。
請嘗試重新啟動並更換您正在使用的裝置和/或瀏覽器,看看您的網站是否能載入。您可能還需要重新啟動調變解調器或路由器。這可能會解決一切問題。或者,如果你發現你的網站在某些地方開始工作,但在其他地方卻不能,這至少可以幫助你縮小問題的範圍。
要重啟 MacOS 上的大多數現代桌上型電腦,請進入蘋果選單(左上角)> 重啟。對於執行 Windows 的電腦來說,應該是導航到工作列中的 “開始”,選擇電源圖示,然後在下一個螢幕上重新啟動。
雖然你通常無法開啟並修復任何有問題的硬體,但你也許可以解決為什麼有些瀏覽器會超時,而有些卻完全正常的問題。接下來就是這個問題。
清除瀏覽器快取
瀏覽器通常會在本地(您的裝置上)儲存網站資訊,以節省載入時間。如果儲存的記錄過時,就會導致連線問題。
要在 Google Chrome 瀏覽器中清除瀏覽器快取,請單擊右上角的三個豎點開啟 Chrome 瀏覽器選單,然後選擇“清除瀏覽資料”。

在這裡,您可以選擇要清除的內容和時間範圍。點選 “清除資料” 按鈕即可完成任務。請記住,這可能會因裝置和作業系統的不同而有所不同。

對於 Safari,選擇左上角封面中的 Safari,然後 > 清除歷史記錄 > 所有歷史記錄 > 清除歷史記錄按鈕。
要在 Microsoft Edge 上清除瀏覽器快取,只需在位址列中輸入 “edge://settings/clearbrowserdata”,然後選擇要清除的內容和時間範圍即可。
請記住,這些過程會因裝置和作業系統版本的不同而有所不同。檢視如何清除瀏覽器快取以瞭解更多其他瀏覽器快取清除方式。
檢查您的代理設定
代理伺服器位於您的裝置和網際網路之間。它主要用於通過從網站和網路伺服器(例如使用VPN)隱藏私人資訊(例如裝置位置)來增強線上隱私。
雖然代理伺服器很少會導致504錯誤,但錯誤的代理伺服器設定有時可能是原因。您可以禁用代理伺服器並嘗試重新載入網頁以檢視它是否會修復錯誤。
在Windows 10中更改“代理”設定
大多數客戶端不使用代理服務,因此如果您確信不使用任何代理伺服器,則可以跳過此步驟。但是,您可能在不知情的情況下進行了設定。我建議您檢查裝置和瀏覽器的代理設定以排除此原因。
DNS問題
伺服器端或客戶端(或兩者)的DNS問題也可能導致504閘道器超時錯誤。
伺服器端DNS問題的最可能原因是FQDN(完全限定域名)未解析正確的IP地址或DNS伺服器沒有響應。通常,當您剛剛將WordPress站點遷移到新伺服器或主機時,就會發生這種情況。因此,等待域的DNS記錄完全傳播很重要,這可能需要長達24小時。
您可以使用whatsmydns.net DNS Checker或DNSMap等免費工具來檢視您的DNS是否已傳播到全球。
在whatsmydns.net上檢查您的域的DNS傳播
要修復客戶端DNS問題,您可以嘗試重新整理本地DNS快取。這就像清除瀏覽器快取一樣,除了這裡,您是從作業系統中清除DNS快取。
如果您使用的是Windows,則可以通過開啟命令提示符並輸入以下指令來重新整理DNS快取:
ipconfig /flushdns
在Windows中使用命令提示符重新整理DNS快取
如果有效,您應該會看到“Successfully flushed the DNS resolver Cache.”。
對於最新的macOS版本,您可以開啟終端並執行以下命令:
sudo killall -HUP mDNSResponder
該過程完成後,您將不會在 macOS 中看到任何通知,但您可以通過將命令附加到您的自定義訊息來更改通知。
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
如果您使用的是較舊的macOS版本,您需要輸入的命令會根據您執行的macOS版本而有所不同。更詳細的可以參考清除DNS快取教程中的macOS部分。
如果您使用的是Linux作業系統,那麼該過程與macOS非常相似,因為即使Linux也使用終端作為其命令列介面。由於有許多Linux發行版,您需要執行的確切命令可能因發行版而異。您可以檢視DNS快取指南以獲取更多資訊。
最後,您可以臨時更改您的客戶端DNS伺服器。預設情況下,您的ISP會自動為您分配DNS伺服器。但是您可以暫時將這些更改為公共DNS IP。
您可以試用的一些可靠DNS伺服器是Google Public DNS、Cloudflare 1.1.1.1、Quad9 DNS和Cisco OpenDNS。
在Windows 10中設定自定義DNS伺服器
暫時禁用您站點的CDN
有時,問題也可能與您的內容交付網路 (CDN) 有關。如果站點的源伺服器不可訪問,大多數CDN將嘗試從其快取中提供完整的網頁。
但是大多數CDN預設不啟用此功能,因為在大多數站點(例如WordPress管理儀表盤)上快取動態資產很複雜。
在Cloudflare中設定“快取所有內容”頁面規則
解決此問題的一種直接方法是暫時禁用您的CDN。例如,如果您使用免費的WordPress外掛-CDN Enabler將您的站點資產連結到CDN URL,那麼您可以停用該外掛並測試重新載入您的站點。
使用您可能用來連線到CDN的任何其他外掛(例如WP Rocket、Breeze、W3 Total Cache)也是如此。
如果您無法訪問站點的管理儀表板,您可以通過SFTP重新命名外掛的資料夾名稱來禁用該外掛。
通過重新命名外掛資料夾名稱,通過SFTP禁用所有外掛
像Cloudflare或Sucuri這樣的CDN提供完整的代理服務,在它們的邊緣伺服器和你的源伺服器之間有額外的防火牆。因此,您在使用它們時可能會更頻繁地遇到HTTP 5xx錯誤。它們中的大多數快取了您的源伺服器返回的5xx錯誤,因此很容易對它們進行故障排除。
Cloudflare的免費計劃容易引發5xx錯誤。不幸的是,因為它是一個完整的代理服務,所以沒有快速的方法來禁用它。但在你為此責怪Cloudflare之前,請了解Cloudflare顯示了 504 Gateway Timeout錯誤的兩種變體。
Cloudflare中的504閘道器超時(變體 1)
當您站點的源伺服器以標準HTTP 504響應進行響應時,Cloudflare將向您顯示自定義504閘道器超時錯誤螢幕。
Cloudflare的自定義錯誤504螢幕
在這裡,問題在於您的Web伺服器而不是Cloudflare。您可以嘗試使用下面提到的其他解決方案來修復它,或者聯絡您的託管服務提供商的支援以獲得技術幫助。
Cloudflare的504閘道器超時(變體 2)
如果Cloudflare導致504 Gateway Timeout錯誤,錯誤螢幕將提及“cloudflare”,這是當前所有Cloudflare資產的標準伺服器名稱。通常,錯誤螢幕將顯示如下:
Cloudflare導致的504閘道器超時錯誤螢幕
由於Cloudflare本身沒有響應,因此您不會在此處看到任何帶有Cloudflare品牌的錯誤螢幕。
最有可能的是,Cloudflare已經意識到這個問題並且正在著手修復。您可以通過檢視Cloudflare系統狀態網頁來確認這一點。或者,您可以聯絡Cloudflare支援以更快地解決問題。
在cloudflarestatus.com檢查Cloudflare系統狀態
由於大量上傳,Cloudflare的504閘道器超時
上傳到站點的大小也可能是伺服器超時的原因。Cloudflare將Free和Pro計劃的上傳檔案大小(每個HTTP POST請求)限制為100MB。
Cloudflare對各種計劃的“最大上傳大小”限制
問題可能出在您的主機端或Cloudflare。您可以通過使用DNS主機檔案繞過Cloudflare並再次嘗試上傳來找出確切原因。
如果您將Cloudflare與WordPress一起使用,我建議您使用他們的免費外掛並從快取中排除關鍵URL(例如WordPress管理儀表盤)。
伺服器問題(請諮詢您的主機)
伺服器問題是面臨504閘道器超時錯誤的最常見原因之一。由於大多數WordPress站點都託管在Nginx或Apache網路伺服器上,因此Nginx或Apache正在等待某物的響應並超時。
大多數提供共享託管計劃的 WordPress 主機都沒有此功能。因此,與您的伺服器託管在同一臺伺服器上的高流量站點也可能導致您的站點丟擲504錯誤。
過載的伺服器並不是伺服器超時的唯一原因。504錯誤可能有許多其他原因:
緩慢的伺服器基礎設施
您用來託管WordPress站點的伺服器可能沒有足夠的資源來處理負載。這就像在十年前的PC上玩現代圖形密集型視訊遊戲。
伺服器只是結束通話了試圖為網站提供服務。此問題的唯一解決方案是升級到具有更好基礎架構的伺服器。
需要更多PHP worker
PHP worker用於執行您的WordPress站點的程式碼。一個每月有50,000名訪問者的電子商務網站比具有相同流量的簡單部落格需要更多的資源。如果所有伺服器的PHP worker都忙,他們將建立一個佇列。
當佇列過大時,伺服器會忽略舊的請求,這可能會導致伺服器丟擲504閘道器錯誤。您可以向您的房東諮詢有關增加PHP worker數量的問題。這將允許您的站點同時執行多個請求。
防火牆問題
您伺服器的防火牆可能有一些錯誤或配置不正確。也許,它的一些規則會阻止伺服器正確建立連線。要知道防火牆是否是罪魁禍首,您可以檢查伺服器的錯誤日誌。
網路連線問題
代理伺服器和Web伺服器之間的連線問題可能會導致響應HTTP請求的延遲。如果您使用負載平衡器,它也可能存在網路連線問題。
HTTP超時
當Web伺服器和客戶端之間的連線保持開啟時間過長時,可能會發生HTTP超時。對於WordPress站點,這通常發生在執行WordPress匯入時。解決此問題的一種方法是切換到更快的Internet連線。
您還可以使用支援WP-CLI的工具直接在伺服器上執行指令碼,完全繞過HTTP連線。例如,您可以使用wp import WP-CLI命令直接通過命令列介面執行WordPress Importer外掛。
重要提示: 504閘道器超時錯誤類似於503服務不可用錯誤或502錯誤閘道器。但它們都是不同的。
要自行監控站點的停機時間,您可以使用updown.io之類的工具。它會通過向其傳送HTTP請求來定期檢查您網站的狀態(或任何URL)。您可以將檢查頻率設定為15秒到1小時。如果您的網站沒有正確響應,它會通過電子郵件或簡訊通知您。
使用updown.io輕鬆監控您的網站
您將通過updown.io的每個帳戶獲得大量免費積分,但如果您正在尋找更便宜的替代品,您可以檢視WebGazer或UptimeRobot。這兩種工具都將幫助您每5分鐘免費監控您網站的正常執行時間。對於大多數網站所有者來說,這已經足夠了。
WebGazer網站監控工具的儀表盤
監控您的網站將使您瞭解它的停機頻率。如果您使用共享主機提供商,這將特別有用。大多數託管WordPress主機會自動為您處理此問題。因此,始終建議與他們一起去。
垃圾郵件、機器人或DDoS攻擊
惡意攻擊者可以通過傳送過多和/或資源密集型請求來使您的Web伺服器爬行。如果您的站點被機器人傳送垃圾郵件或遭受DDoS攻擊,它可能會使您的伺服器不堪重負,並導致許多真正的使用者出現 504 閘道器超時錯誤。
您可以檢視伺服器流量和分析,看看是否可以發現站點流量中的任何不規則模式。如果您使用寶塔面板管理您的網站,您可以通過監控管理檢視相關資料。
寶塔面板監控管理介面
最後,您可以使用WordPress安全外掛通過發現和阻止令人擔憂的流量/IP 來增強您網站的安全性。您也可以要求您的主機阻止某些IP。
根據攻擊的長度和規模,這可能是一個永無止境的將IP列入黑名單的過程,因為許多攻擊者在被阻止後更改了他們的IP和代理地址。
您可以使用Cloudflare或Sucuri等專用安全解決方案來保護您的站點免受DDoS攻擊和垃圾郵件機器人的侵害。有關更多資訊,您可以安裝Sucuri以阻止DDoS攻擊。
損壞的WordPress資料庫
有時,504閘道器超時錯誤可能是因為資料庫損壞,尤其是在WordPress站點中。通常,這是由於損壞的資料庫表或檔案造成的。有時,它也可能是由嚴重的安全問題引起的,例如您的網站或資料庫被黑客入侵。
修復損壞的WordPress資料庫取決於問題。WP-DBManager之類的外掛可以輕鬆診斷資料庫問題並修復它們。我建議您閱讀關於修復WordPress資料庫問題的詳細教程。
檢查您網站的外掛和主題
大多數情況下,第三方外掛和主題不會導致504錯誤。但是它們有可能導致伺服器超時,通常是通過將外掛/主題生成的許多未快取請求排隊。由於這會佔用大量伺服器的PHP worker,因此可能會導致504錯誤。
這個問題的一個很好的例子是WooCommerce,這是一個安裝外掛,用於向WordPress網站新增電子商務功能。
解決此問題的最簡單方法是停用所有外掛。請記住,如果您只是停用外掛,您不會丟失任何資料。
如果您可以訪問管理儀表盤,則可以轉到外掛,從批量操作選單中選擇停用,選中所有外掛,然後點選應用按鈕。這將禁用您的所有外掛。
通過WP管理儀表盤停用所有WordPress外掛
如果您無法訪問您的管理後臺,您可以使用之前描述的方法通過SFTP禁用外掛。只需重新命名主外掛資料夾名稱即可批量禁用所有外掛。
停用所有外掛後,請檢查您的網站是否正確載入。如果它有效,您必須啟用每個外掛,在啟用每個外掛後測試站點。
最後,確保您的外掛、主題和WordPress核心是最新的。另外,請確保您的伺服器正在執行推薦的PHP版本。
如果您覺得這太過分了,您可以隨時向您的伺服器提供商尋求幫助。
在最壞的情況下,例如低效查詢或外掛/主題中的錯誤程式碼,您可以聘請WordPress開發人員來解決問題。
檢查錯誤日誌
在對WordPress站點上的504錯誤進行故障排除和除錯時,檢視錯誤日誌非常有用。這可以幫助您快速縮小網站上的問題,特別是如果它是由您網站上要求苛刻的外掛引起的。
您可以通過將以下程式碼新增到wp-config.php檔案來啟用WordPress除錯模式:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
WP_DEBUG不斷啟用或禁用WordPress的除錯模式。它有兩個可選的伴隨常量,可以擴充套件其功能。WP_DEBUG_LOG
常量指示將所有錯誤儲存到目錄/wp-content/
中的debug.log檔案中。如果您沒有看到這個檔案,您可以隨時建立一個。
WP_DEBUG_DISPLAY
常量控制除錯日誌是否顯示在HTML頁面上。將此設定為false將隱藏所有錯誤,但您可以稍後檢視錯誤,因為您也已將其定義WP_DEBUG_LOG
為true。
您還可以通過SFTP下載原始WordPress錯誤日誌檔案。通常,您可以在伺服器根目錄中名為“logs”的資料夾中找到錯誤日誌。
通過SFTP訪問WordPress錯誤日誌資料夾
最後,您可以檢查伺服器日誌檔案。根據您用於託管WordPress站點的伺服器,它們通常位於以下位置:
- Apache:
/var/log/apache2/error.log/
- nginx:
/var/log/nginx/error.log/
正確配置Apache或Nginx設定
您可以編輯伺服器配置檔案以增加特定指令的資源限制。這可以幫助您解決504閘道器超時錯誤。
對於Apache 網路伺服器
首先,將以下程式碼新增到您的httpd.conf:
TimeOut 600
此設定定義了伺服器在將其標記為網路超時問題之前等待特定請求的時間。它的預設值為60秒(Apache 2.4版本)。
您只能在httpd.conf檔案中新增此指令,而不能在.htaccess檔案中新增。由於大多數共享主機提供商不允許你修改的httpd.conf檔案,你可以嘗試增加值LimitRequestBody指令在你的.htaccess檔案來代替。
然後將以下行新增到您的php.ini檔案中:
max_execution_time 300
PHP的max_execution_time指令的預設值為30 秒。增加它將使您網站的PHP指令碼執行更長時間。
對於Nginx網路伺服器
如果您在Nginx+FastCGI程序管理器 (PHP-FPM) 上執行WordPress站點或使用Nginx作為Apache的反向代理,您可以調整伺服器設定以幫助防止504閘道器超時錯誤。
(1)Nginx+FastCGI (PHP-FPM)上的504閘道器超時錯誤
首先,您必須編輯PHP-FPM池配置檔案。您可以在Nginx伺服器中的/etc/php7.4/fpm/pool.d/www.conf
位置找到它(確切路徑可能因PHP版本而異)。或者,您可以在終端中執行以下命令來編輯PHP-FPM池配置檔案:
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
接下來,設定以下指令:
request_terminate_timeout = 300
在此之後,您必須編輯您的php.ini檔案。您可以在/etc/php.ini
找到它。開啟檔案並將max_execution_time
指令的值新增/更改為300秒。
max_execution_time = 300
最後,將以下程式碼新增到nginx.conf檔案的位置塊:
location ~ .php$ { ... fastcgi_read_timeout 300; }
重新載入Nginx和PHP-FPM以使更改生效。
sudo service nginx reload sudo service php7.4-fpm reload
重新載入PHP-FPM的確切程式碼將根據您的伺服器上安裝的PHP版本而有所不同。測試您的網站,看看它是否已解決問題。
(2)Nginx代理上的504閘道器超時錯誤
如果您使用Nginx作為Apache的反向代理伺服器,那麼您可以通過將以下指令新增到您的nginx.conf檔案來使其對伺服器超時更加寬容:
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;
不要忘記在進行更改後重新載入Nginx。
sudo service nginx reload
其他HTTP錯誤,如504閘道器超時
正如文章前面提到的,許多其他HTTP 5xx錯誤就像504閘道器超時錯誤一樣。這是因為它們都發生在伺服器端。這些錯誤包括:
由於客戶端問題導致的其他HTTP錯誤,例如404 Not Found錯誤,也類似於504錯誤。您可以參考HTTP狀態程式碼列表以獲取更多資訊。
小結
由於多種原因,您的WordPress網站可能會受到504閘道器超時錯誤的影響。在本文中,您學習瞭如何對它們進行故障排除。通常,這些錯誤是由伺服器端問題引起的,在這種情況下,您可以聯絡您的主機並快速解決問題。
但是,您還必須瞭解,此錯誤可能是由於第三方外掛、主題、服務、低效的資料庫查詢或其中兩個或多個的組合造成的。如果您要最大限度地利用伺服器資源(例如PHP worker),建議優化您的站點以提高效能。
如果您仍然發現您的網站超時,那麼您很可能需要升級您的託管計劃或增加PHP worker的數量。我建議您僅在用盡本文中描述的所有其他解決方案後才考慮此選項。
評論留言