504網關超時 錯誤是最常見的HTTP之一 5xx 網站所有者和網站訪問者面臨的錯誤。對於很多 WordPress博客電子商務平台,知道如何解決這樣的服務器錯誤對於防止其來之不易的訪問者跳回競爭對手的網站至關重要。

由於504網關超時錯誤不會告訴您發生原因,因此很難查明是什麼原因導致服務器超時。本文將幫助您深入了解它,學習如何診斷其原因,然後修復它。

在嘗試了帖子中提到的所有各種解決方案之後,您的網站應該立即啟動並運行。

聽起來不錯?讓我們潛入吧!

什麼是504網關超時錯誤?

每次您在瀏覽器中訪問網站時,瀏覽器都會向 託管網站的Web服務器。服務器處理請求並以請求的資源響應。

Illustration of how HTTP requests and responses work

HTTP請求和響應如何工作

服務器響應包括以下之一 許多HTTP狀態代碼 指示對瀏覽器的響應狀態。但是,並非所有這些HTTP狀態代碼都是錯誤。例如,一個 200 OK狀態碼 表示服務器成功處理了該請求,並且“一切正常”。

5xx類的HTTP狀態代碼 表示服務器出了點問題,服務器知道了此信息,並且無法執行客戶端請求。結果,它們也被稱為 服務器錯誤5xx 狀態代碼。

正式地,在5xx類下指定了五個狀態代碼(500, 501, 502, 503(504)。您可能還會遇到許多非官方代碼(506, 507, 509, 520等)。

互聯網工程任務組(IETF)定義了 504網關超時錯誤 如:

504(網關超時)狀態碼表示服務器充當網關或代理時,未從上游服務器收到及時響應以完成請求。

為了進一步簡化,當兩個服務器都參與處理一個請求,並且第一台服務器(通常是主服務器)超時等待第二台服務器(上游服務器)的響應時,就會發生此錯誤。

504網關超時錯誤以各種形式表現出來。通常會顯示以下幾種方式:

The HTTP ERROR 504 in Chrome browser

Chrome瀏覽器中的“ HTTP錯誤504”

504網關超時錯誤與 502錯誤的網關錯誤,指示第一台服務器從第二台服務器(上游服務器)收到無效響應。

504 GATEWAY TIMEOUT status code in Chrome DevTools

Chrome DevTools中的“ 504 GATEWAY TIMEOUT”狀態代碼

504網關超時錯誤的變化

瀏覽器在其中顯示任何504網關超時錯誤,就像其他任何錯誤一樣。由於存在各種操作系統,Web服務器,瀏覽器和用戶代理,因此它可以多種方式顯示。

以下是您可能會遇到的一些常見的504錯誤消息變體:

  • 504網關超時
  • 504網關超時NGINX
  • NGINX 504網關超時
  • 網關超時錯誤
  • 錯誤504
  • HTTP錯誤504
  • HTTP錯誤504 —網關超時
  • HTTP 504
  • 504錯誤
  • 網關超時(504)
  • 該頁面無法正常使用-域花了太長時間才能回复
  • 504網關超時-服務器未及時響應
  • 黑屏

儘管措辭不同,但所有上述錯誤響應均指向相同的504網關超時服務器錯誤。

Web服務器和網站可以自定義它們向用戶顯示504網關超時錯誤的方式。其中一些可以很酷!這是平息訪客失望的絕妙策略。

GitHub’s customized HTTP 504 error page

GitHub的自定義HTTP 504錯誤頁面

SEO對504網關超時錯誤的影響

所有5xx錯誤都會阻止網頁加載,從而不利於用戶體驗。因此, 像Google這樣的搜索引擎 認真對待這些錯誤。如果錯誤持續很長時間,甚至可能導致網頁從搜索引擎結果中刪除索引。

例如,當Google蜘蛛偶然發現一個 503服務不可用 錯誤,他們會理解這是一個臨時性問題,因為它通常用於 啟用網站維護模式。因此,他們稍後將嘗試再次爬網該頁面。

504網關超時錯誤不一定是暫時的,這可能是由於多種原因造成的。如果 您的網站已關閉 只需幾分鐘,如果蜘蛛試圖每分鐘對它進行多次爬網,它們將嘗試從緩存中提供頁面。他們甚至不會注意到它。

但是,如果您的網站宕機了6個小時或更長時間,那麼Google會將504錯誤視為嚴重的網站範圍問題,您需要盡快進行修復。這會對您的SEO產生負面影響。

Viewing the crawl errors in Google Search Console

在Google Search Console中查看抓取錯誤

Google Search Console 其中一個 最好的SEO工具 監視您的網站的HTTP 5xx錯誤。

504網關超時錯誤的原因

由於504錯誤是由於服務器之間的超時引起的,因此問題可能出在客戶端的設備或Internet連接上。這還包括您的設備和連接。

504網關超時錯誤表示Web服務器等待另一台服務器的響應時間太長,並且正在“定時”。發生超時的原因可能很多:另一台服務器無法正常運行,過載或已關閉。

另一個服務器不必總是外部服務器(例如, CDN,API網關)。它也可以是主Web服務器中的類似服務器的實體(例如 反向代理服務器,數據庫服務器)。

如何修復504網關超時錯誤

在不了解有關WordPress網站的確切詳細信息(例如其服務器配置)的情況下, 託管計劃,第三方插件和 它吸引的流量,您可能會發現修復504網關超時錯誤令人沮喪和不知所措。

由於涉及許多變量,因此我建議您首先解決客戶端問題(這種情況很少見),然後再解決服務器端問題,這些問題通常是504錯誤的元兇。

嘗試重新加載網頁

遇到504網關超時錯誤時,您可以嘗試的第一件事是等待幾分鐘,然後嘗試重新加載頁面。

您可以按 F5 在大多數瀏覽器中刷新/重新加載網頁的鍵盤快捷鍵。刪除頁面的 瀏覽器緩存 重新加載之前,您可以按 CTRL + F5 快捷鍵組合。

Refreshing a webpage in Chrome browser

在Chrome瀏覽器中刷新網頁

進行此操作時,您還可以嘗試在其他瀏覽器中加載網站以排除此問題。由於大多數504錯誤是由於服務器暫時過載造成的,因此使用此解決方案應可使您的網站恢復正常。

如果等待並重新加載該站點不能解決504錯誤問題,則可以檢查該站點對所有人還是對您而言都是關閉的。測試站點停機的兩個很棒的在線工具是 為所有人或為我而沮喪現在下來了嗎?

Testing Kinsta.com on Down for Everyone or Just Me

為所有人或我自己測試Kinsta.com

重新啟動您的網絡設備

有時,網絡設備(如調製解調器或路由器)出現問題可能會導致504網關超時錯誤。重新啟動這些設備可以幫助您解決問題。

雖然可以按任何順序關閉所有這些網絡設備,但是重新打開它們的順序很重要。通常,按照從互聯網服務提供商到您的主要客戶端設備的連接順序,從“外向內”打開這些設備。

檢查您的代理設置

代理服務器位於您的設備和互聯網之間。它主要用於通過隱藏網站和網絡服務器(例如,個人信息)(例如設備位置)來增強在線隱私。 使用VPN).

雖然代理服務器很少會引起504錯誤,但有時可能是代理服務器設置不正確的原因。您可以禁用代理服務器,然後嘗試重新加載網頁以查看它是否可以解決該錯誤。

Changing the ‘Proxy’ settings in Windows 10

在Windows 10中更改``代理''設置

大多數客戶端不使用代理服務,因此,如果您確定不使用任何代理服務器,則可以跳過此步驟。但是,您可能甚至在不知道它的情況下進行了設置。建議您檢查設備和瀏覽器的代理設置以排除此原因。

DNS問題

服務器端或客戶端(或兩者)上的DNS問題也可能導致504網關超時錯誤。

服務器端DNS問題的最可能原因是FQDN(完全合格的域名)未解析為正確的IP地址。通常,這是在您剛將WordPress網站遷移到新服務器或主機時發生的。因此,重要的是要等待域的 DNS記錄可以完全傳播,最多可能需要24小時。

您可以使用免費工具,例如 whatsmydns.net DNS檢查器 要么 域名解析 查看您的DNS是否已遍及全球。

Checking DNS propagation for your domain on whatsmydns.net

在whatsmydns.net上檢查域名的DNS傳播

要解決客戶端DNS問題,您可以嘗試 刷新本地DNS緩存。就像清除瀏覽器緩存一樣,只不過這裡是從操作系統中清除DNS緩存。

如果您使用的是Windows,則可以通過打開命令提示符並輸入以下指令來刷新DNS緩存:

ipconfig / flushdns
Flushing the DNS Cache with Command Prompt

在Windows中使用命令提示符刷新DNS緩存

您應該看到“已成功刷新DNS解析器緩存”。消息是否有效。

對於最新的macOS版本,您可以打開終端並運行以下命令:

須藤killall -HUP mDNSResponder

完成此過程後,您將不會在macOS中看到任何通知,但是可以通過在命令中附加自定義消息來更改通知。

sudo killall -HUP mDNSResponder; DNS緩存已成功清除

如果您使用的是舊版本的macOS,則需要輸入的命令會根據所運行的macOS版本而有所不同。有關更多詳細信息,請參閱 Kinsta的深度嵌入式DNS中的macOS部分 教程。

如果您使用的是Linux操作系統,則該過程與macOS十分相似,甚至Linux都使用Terminal作為其命令行界面。由於存在許多Linux發行版,因此您需要運行的確切命令可能因發行版而異。您可以 查看Kinsta的指南 想要查詢更多的信息。

最後,您可以臨時更改客戶端DNS服務器。默認情況下,您的ISP自動為您分配DNS服務器。但是您可以將它們臨時更改為公共DNS IP。

您可以嘗試的一些可靠的方法是 Google公共DNS, Cloudflare 1.1.1.1, Quad9 DNS思科OpenDNS.

Settings custom DNS servers in Windows 10

在Windows 10中設置自定義DNS服務器

暫時禁用您站點的CDN

有時候,問題可能出在您的 內容交付網絡(CDN)。如果無法訪問站點的原始服務器,則大多數CDN都會嘗試從其緩存中提供完整的網頁。

但是大多數CDN都不默認啟用此功能,因為 複雜以緩存動態資產 在大多數網站上(例如 WordPress管理儀表板).

Setting the ‘Cache Everything’ page rule in Cloudflare

在Cloudflare中設置“緩存所有內容”頁面規則

解決此問題的一種直接方法是暫時禁用CDN。例如,如果您使用免費 CDN啟動器 WordPress插件可將您的站點資產鏈接到CDN URL,然後您可以停用該插件並測試重新加載站點。

使用其他任何可用於連接CDN的插件(例如WP Rocket,Breeze, W3總緩存).

如果您無法訪問網站的管理控制台,則可以通過以下方式禁用該插件 SFTP 通過重命名插件的文件夾名稱。

Disable all plugins via SFTP by renaming the plugins folder name

重命名插件文件夾名稱,通過SFTP禁用所有插件

CDN喜歡 雲耀斑 要么 蘇庫裡 提供完整代理服務的邊緣服務器和源服務器之間有額外的防火牆。因此,在使用它們時,您可能會更頻繁地遇到HTTP 5xx錯誤。他們大多數 緩存源服務器返回的5xx錯誤,因此很容易對其進行故障排除。

Cloudflare的免費計劃易於引發5xx錯誤。不幸的是,由於它是一項完整的代理服務,因此無法快速禁用它。但是在您為此怪罪Cloudflare之前,請先了解Cloudflare 504網關超時錯誤的兩個變化.

Cloudflare的504網關超時(版本1)

當站點的源服務器以標準HTTP 504響應進行響應時,Cloudflare將向您顯示一個自定義504網關超時錯誤屏幕。

Cloudflare’s custom Error 504 screen

Cloudflare的自定義錯誤504屏幕

在這裡,問題出在您的Web服務器上,而不是Cloudflare。您可以嘗試使用下面提到的其他解決方案修復它,或者與您的 託管服務提供商的支持 尋求技術幫助。

Cloudflare的504網關超時(版本2)

如果Cloudflare導致504網關超時錯誤,錯誤屏幕將顯示“ cloudflare”,這是當前所有Cloudflare資產的標準服務器名稱。通常,錯誤屏幕如下所示:

504 Gateway Timeout error caused by Cloudflare

由Cloudflare引起的504網關超時的錯誤屏幕

由於Cloudflare本身沒有響應,因此您在此處看不到任何Cloudflare品牌的錯誤屏幕。

最有可能的是,Cloudflare已經意識到了這個問題,並且已經在進行修復。您可以通過檢查 Cloudflare系統狀態 網頁。或者,您可以 與Cloudflare支持聯繫 以獲得更快的分辨率。

Check Cloudflare System Status at cloudflarestatus.com

通過cloudflarestatus.com檢查Cloudflare系統狀態

大量上傳導致Cloudflare的504網關超時

您上傳到網站的大小 也可能是服務器超時的原因。 Cloudflare限制上傳文件的大小 (按HTTP POST請求)免費版和專業版計劃中的存儲空間僅為100 MB。

Cloudflare’s ‘Maximum Upload Size’ limits for various plans

Cloudflare各種計劃的“最大上傳大小”限制

問題可能出在主機端,也可能出在Cloudflare上。您可以通過繞過Cloudflare找出確切的原因 DNS主機文件 然後再次嘗試上傳。

如果您將Cloudflare與WordPress結合使用,建議您使用他們的 免費插件從緩存中排除關鍵URL (例如WordPress管理信息中心)。您可以參考Kinsta在 如何為WordPress配置Cloudflare設置.

建議閱讀: 如何為WordPress設置Cloudflare APO.

服務器問題(與主機聯繫)

服務器問題是遇到504網關超時錯誤的最常見原因之一。由於大多數WordPress網站都託管在 Nginx的 要么 阿帕奇 網絡服務器,這意味著Nginx或Apache正在等待某些響應並超時。

許多客戶來到Kinsta正是因為他們在其他WordPress主機上面臨的這個問題。對話過程如下:

我們每月有大約10萬名訪問者,觀看次數超過20萬。目前,我們使用____託管,由於服務器過載,我們經常遇到504個錯誤。我不喜歡____處理問題的方式,還被告知我們必須盡快執行他們的專用計劃,我認為這是沒有必要的。

高流量和 電子商務網站 由於服務器過載,更容易產生504錯誤,因為它們會生成很多不可緩存的請求。但是,此問題可能會出現在任何站點上,包括簡單 網誌。許多主機會要求您升級到高層計劃以解決此問題,在大多數情況下這是不必要的。

Kinsta的用途 LXD託管主機和精心編排的LXC軟件容器 對於每個站點。因此,每個WordPress網站都位於自己的隔離容器中,可以訪問運行該網站所需的所有軟件(Linux,Nginx,PHP, 的MySQL)。這些資源是100%專用資源,不會與任何其他站點(甚至您的站點)共享。

提供共享託管計劃的大多數WordPress主機沒有此功能。因此, 高流量站點 與您的服務器託管在同一服務器上,也可能導致您的網站引發504錯誤。

除了隔離容器中的每個站點外,Kinsta還設計了可輕鬆處理數千個並發連接的基礎結構。 Kinsta甚至在以下位置託管MySQL數據庫: 本地主機,而不是遠程服務器。這意味著機器之間沒有等待時間,從而可以加快查詢速度並減少發生超時的機會。

許多客戶 遷移到Kinsta 看到巨大的 減少總加載時間.

A 212.5% increase in performance after switching to C2.

切換到C2後,性能提高了212.5%。

服務器過載並不是服務器超時的唯一原因。 504錯誤可能有許多其他原因:

緩慢的服務器基礎架構

您用來託管WordPress網站的服務器可能沒有足夠的資源來處理負載。就像在擁有十年曆史的PC上玩現代的圖形密集型視頻遊戲一樣。

服務器只是掛斷嘗試服務網站。解決此問題的唯一方法是升級到具有更好基礎結構的服務器。因此,即使Kinsta最基本的WordPress託管計劃也可以處理流量中等的靜態站點。

需要更多的PHP工作者

PHP工人 用於在WordPress網站上執行代碼。一個每月訪問量為50,000個訪問者的電子商務網站比具有相同流量的簡單博客需要更多的資源。如果服務器的所有PHP工作人員都忙,他們將建立一個隊列。

當隊列太大時,服務器將忽略舊的請求,這可能導致服務器拋出504網關錯誤。您可以詢問您的主機有關增加PHP工作者數量的信息。這將使您的網站可以同時執行多個請求。

防火牆問題

您服務器的防火牆可能有一些錯誤或配置不正確。也許,它的一些規則阻止服務器正確建立連接。要知道是否 您的防火牆 是罪魁禍首,您可以檢查服務器的 錯誤日誌.

網絡連接問題

代理服務器和Web服務器之間的連接性問題可能會導致響應HTTP請求的延遲。如果使用負載平衡器,則它也可能存在網絡連接問題。

HTTP超時

當Web服務器和客戶端之間的連接保持打開狀態太長時間時,可能會發生HTTP超時。對於WordPress網站,這通常在運行時發生 WordPress導入。解決此問題的一種方法是切換到更快的Internet連接。

您也可以使用支持以下功能的工具 WP-CLI 直接在服務器上運行腳本,完全繞過HTTP連接。例如,您可以使用 wp import WP-CLI命令 直接通過命令行界面運行WordPress導入程序插件。

重要: 504網關超時錯誤看起來類似於 503服務不可用錯誤 要么 502錯誤的網關錯誤。但是它們都是不同的。如果您在Kinsta遇到504錯誤, 打開支持票 立即解決您的問題。

要自行監控網站的停機時間,可以使用以下工具 updown.io。通過向其發送HTTP請求,它將定期檢查您網站的狀態(或任何URL)。您可以將檢查頻率設置為15秒到1小時。如果您的網站未正確響應,它將通過電子郵件或短信通知您。

Monitor your website with updown.io

使用updown.io輕鬆監視您的網站

每個updown.io帳戶都會為您提供大量的免費積分,但是如果您正在尋找更便宜的替代品,則可以查看 WebGazer 要么 正常運行時間的機器人。這兩種工具都將幫助您免費每5分鐘監控站點的正常運行時間。對於大多數網站所有者來說,這已經足夠了。

WebGazer website monitoring tool's dashboard

WebGazer網站監視工具的儀表板

監視您的網站將使您了解其被關閉的頻率。如果您使用共享主機提供商,這將特別有用。大多數託管WordPress主機會自動為您處理此問題,因此始終建議與它們一起使用。

有關詳細說明,請查看Kinsta在 託管WordPress託管的重要性.

垃圾郵件,殭屍程序或DDoS攻擊

惡意攻擊者可以通過發送過多請求或發送資源密集型請求來使您的Web服務器爬網。如果您的網站被殭屍程序淹沒或正在遭受 DDoS攻擊,它會使您的服務器不堪重負,並為許多真正的用戶造成504網關超時錯誤。

您可以查看服務器流量和分析,以查看是否可以發現站點流量中的任何不規則模式。如果您使用Kinsta來託管您的網站,則可以通過以下方式輕鬆查看此數據: MyKinsta Analytics儀表板.

MyKinsta Analytics dashboard

MyKinsta Analytics儀表板

通過查看頂級客戶端IP來開始調查。它會讓您了解誰在生成最大數量的請求,以及從何處生成最大數量的請求。如果您的服務器突然耗盡了巨大的帶寬或吸引了大量的流量,那麼此報告將非常方便。

Viewing ‘Top Client IPs’ in MyKinsta dashboard

在MyKinsta儀表板中查看“頂級客戶端IP”

接下來,您可以查看 緩存分析 報告。在這裡,您可以看到有多少個請求繞過或丟失了緩存,或者正在從緩存中得到服務。出於性能和穩定性的原因,您希望緩存盡可能多的請求,但並非總是可以實現該請求。

例如, WooCommerce網站 生成許多諸如購物車和結帳流程之類的不可緩存請求。

The ‘Cache Analysis’ screen in MyKinsta

MyKinsta中的“緩存分析”屏幕

最後,您可以使用 WordPress安全插件 通過發現和阻止令人煩惱的流量/ IP來增強網站的安全性。您可以要求房東 阻止某些IP 太。

遇到停機和WordPress問題嗎? Kinsta是一款託管解決方案,設計時考慮了性能和安全性! 查看我們的計劃

根據攻擊的長度和規模,這可能是將IP列入黑名單的永無止境的過程,因為許多攻擊者在被阻止後會更改其IP和代理地址。

注意: Kinsta不允許其客戶安裝WordPress安全性插件,因為它們會對網站的性能(尤其是其掃描功能)產生巨大影響。由於Kinsta使用負載平衡器 Google Cloud Platform,阻止IP並非總是能按預期工作。

您可以使用Cloudflare或Sucuri等專用的安全解決方案來保護您的站點免受DDoS攻擊和垃圾郵件機器人的攻擊。有關更多信息,您可以在下面查看Kinsta的文章 如何安裝Cloudflare 在您的WordPress網站上以及如何 Sucuri幫助阻止了DDoS攻擊 在它的軌道上。

損壞的WordPress數據庫

有時,504網關超時錯誤可能是由於損壞 數據庫,尤其是在WordPress網站中。通常,這是由於數據庫表或文件已損壞。有時,它也可能是由嚴重的安全問題(例如您的網站或數據庫被黑客入侵)引起的。

修復損壞的WordPress數據庫取決於問題。像插件 WP-DB管理器 使診斷數據庫問題和修復問題變得容易。我建議您閱讀有關Kinsta的詳細演練 修復WordPress數據庫問題 開始。

檢查您網站的插件和主題

在大多數情況下,第三方插件和主題不會導致504錯誤。但是它們通常會通過排隊插件/主題生成的許多未緩存請求而導致服務器超時的可能性很小。由於這束縛了服務器的許多PHP工人,因此可能導致504錯誤。

這個問題的一個很好的例子是WooCommerce,這是一個為WordPress網站添加電子商務功能而安裝的插件。

解決此問題的最簡單方法是 停用所有插件。請記住,僅停用插件就不會丟失任何數據。

如果您可以訪問管理信息中心,則可以轉到 外掛程式 屏幕,選擇 停用 從批量操作菜單中,選中所有插件,然後點擊 應用 按鈕。這將禁用所有插件。

Deactivate plugins in WordPress

通過WP管理控制台停用所有WordPress插件

如果你 無法訪問您的管理區域,那麼您可以使用上述方法通過SFTP禁用插件。只需重命名主插件文件夾名稱即可批量禁用所有插件。

停用所有插件後,請檢查您的網站是否正確加載。如果可行,則必須逐個激活每個插件,並在啟用每個插件後測試站點。

最後,請確保您的插件,主題和WordPress核心是最新的。另外,請確保您的服務器正在運行 推薦的PHP版本.

如果您覺得這太過壓倒性的話,可以隨時與您的主人聯繫以尋求幫助。 Kinsta使用New Relic和其他故障排除技術來幫助客戶 縮小哪些插件,查詢或腳本可能導致錯誤的範圍.

在最壞的情況下,例如查詢效率低下或插件/主題中的錯誤代碼,您可以引入 WordPress開發人員 解決該問題。

檢查錯誤日誌

觀看中 錯誤日誌 對WordPress網站上的504錯誤進行故障排除和調試時,可能會非常有幫助。這可以幫助您快速縮小網站上的問題的範圍,特別是如果這是由您網站上要求苛刻的插件引起的。

如果您是Kinsta客戶,則可以在MyKinsta儀表板的日誌查看器中輕鬆查看錯誤。

Checking error logs inside MyKinsta dashboard

檢查MyKinsta儀表板內的錯誤日誌

如果您的主機沒有日誌記錄工具,則可以 啟用WordPress調試模式 通過將以下代碼添加到您的 wp-config.php file:

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

WP_DEBUG常數 啟用或禁用WordPress調試模式。它具有兩個可選的伴隨常量,可以擴展其功能。的 WP_DEBUG_LOG 常量將所有錯誤保存到 調試日誌 內的文件 / wp-content / 目錄。如果看不到此文件,則始終可以創建一個。

WP_DEBUG_DISPLAY 常量控制調試日誌是否顯示在HTML頁面中。將其設置為false將隱藏所有錯誤,但是您也可以在定義了以後再查看這些錯誤 WP_DEBUG_LOG 確實如此。

重要: 如果你有 啟用WP_DEBUG 在Kinsta環境中,它將所有錯誤路由到 調試日誌 文件而不是 錯誤日誌 在MyKinsta儀表板中。

您還可以通過SFTP下載原始的WordPress錯誤日誌文件。通常,您可以在服務器的根目錄中的名為“ logs”的文件夾中找到錯誤日誌。

Accessing the WordPress error logs folder via SFTP

通過SFTP訪問WordPress錯誤日誌文件夾

Kinsta用戶還可以從MyKinsta儀表板啟用WordPress調試模式。為此,請導航至 站點>工具> WordPress調試 然後點擊 啟用 按鈕。這樣您就可以查看PHP錯誤和通知,而不必通過SSH或SFTP啟用調試模式。

最後,您可以檢查服務器日誌文件。通常會在以下位置找到它們,具體取決於您用來託管WordPress網站的服務器:

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

您可以參考與日誌記錄相關的文檔 阿帕奇 要么 Nginx的 想要查詢更多的信息。

正確配置Apache或Nginx設置

您可以編輯服務器配置文件以增加特定指令的資源限制。這可以幫助您解決504網關超時錯誤。

對於Apache Web服務器

首先,將以下代碼添加到您的 httpd.conf:

超時600

此設置定義在將服務器標記為網絡超時問題之前服務器將等待某些請求的時間。它的 默認值為60秒 (Apache 2.4版本)。

您只能將此指令添加到您的 httpd.conf 文件,不在您的文件中 .htaccess 文件。由於大多數共享託管服務提供商不允許您修改 httpd.conf 文件,您可以嘗試增加 LimitRequestBody指令 在你的 .htaccess 文件代替。

然後將以下行添加到您的 php.ini file:

max_execution_time 300

PHP的默認值 max_execution_time指令 是30秒。增加它可以使您站點的PHP腳本運行更長的時間。

對於Nginx Web服務器

如果您在Nginx + FastCGI Process Manager(PHP-FPM)上運行WordPress網站或使用 Nginx作為反向代理 對於Apache,您可以調整服務器設置以幫助防止504網關超時錯誤。

Nginx + FastCGI(PHP-FPM)上的504網關超時錯誤

首先,您必須編輯PHP-FPM池配置文件。您可以在 /etc/php7.4/fpm/pool.d/www.conf Nginx服務器中的位置(確切路徑可能因 PHP版本)。或者,您可以在終端中運行以下命令來編輯PHP-FPM池配置文件:

須藤納米/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 文件的位置塊:

位置〜.php$ {... fastcgi_read_timeout 300; }

重新加載Nginx和PHP-FPM以使更改生效。

sudo服務nginx重新加載sudo服務php7.4-fpm重新加載

重新加載PHP-FPM的確切代碼將根據服務器上安裝的PHP版本而有所不同。測試您的站點,看它是否已解決該問題。

Nginx代理上的504網關超時錯誤

如果您將Nginx用作Apache的反向代理服務器,則可以通過向您的服務器添加以下指令,使其對服務器超時更加寬容 nginx.conf file:

proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;

進行更改後,請不要忘記重新加載Nginx。

sudo服務nginx重新加載

其他HTTP錯誤,例如504網關超時

如本文前面所述,還有許多其他HTTP 5xx錯誤,就像504網關超時錯誤一樣。這是因為它們全都發生在服務器端。這些錯誤包括:

由於客戶端問題導致的其他HTTP錯誤,例如 找不到404 錯誤,也與504錯誤類似。您可以參考Kinsta的詳細信息 HTTP狀態代碼指南和列表 想要查詢更多的信息。

概要

您的 WordPress網站 由於多種原因,可能會受到504網關超時錯誤的影響。在本文中,您學習瞭如何對它們全部進行故障排除。通常,這些錯誤是由於服務器端問題引起的,在這種情況下,您可以與主機聯繫并快速解決它。

但是,您還必須了解,此錯誤可能是由於第三方插件,主題,服務,低效的數據庫查詢或其中的兩個或更多個的組合引起的。如果您要最大限度地利用服務器的資源(例如PHP工作者),建議您 優化網站的性能.

如果您仍然發現自己的網站正在超時,則很可能是您需要升級託管計劃或PHP工作者的數量。我建議您僅在用盡本文中介紹的所有其他解決方案之後才考慮使用此選項。

從簡單的靜態網站到復雜的網站 電子商務會員網站,Kinsta的託管計劃旨在容納所有類型的網站。即使您的網站使用的服務器資源超出託管計劃提供的資源, Kinsta的自動縮放功能 表示您的網站將始終在線。

我們錯過了什麼嗎?如果您仍然難以修復WordPress網站上的504網關超時錯誤,請在下面留下評論。