如何修復WordPress網站上的504網關超時錯誤

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

 

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

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

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

什麼是504網關超時錯誤?

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

HTTP請求和響應如何工作的圖示

HTTP請求和響應如何工作

伺服器響應包括許多HTTP狀態代碼之一,以指示對瀏覽器的響應狀態。但是,並非所有這些HTTP狀態代碼都是錯誤。例如,狀態碼為200 OK表示伺服器成功處理了請求,並且「一切都很好」。

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

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

Internet工程任務組(IETF)將504網關超時錯誤定義為:

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

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

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

Chrome瀏覽器中的HTTP錯誤504

Chrome瀏覽器中的「 HTTP錯誤504」

504網關超時錯誤類似於502錯誤網關錯誤,該錯誤指示第一台伺服器從第二台伺服器(上游伺服器)收到無效響應。

Chrome DevTools中的504 GATEWAY TIMEOUT狀態代碼

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的自定義HTTP 504錯誤頁面

GitHub的自定義HTTP 504錯誤頁面

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

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

例如,當Google Spider偶然發現503 Service Unavailable錯誤時,他們將理解這是一個臨時性問題,因為它主要用於啟用站點維護模式。因此,他們稍後將嘗試再次爬網該頁面。

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

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

在Google Search Console中查看抓取錯誤

在Google Search Console中查看抓取錯誤

Google Search Console是監視網站HTTP 5xx錯誤的最佳SEO工具之一。

504網關超時錯誤的原因

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

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

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

如何修復504網關超時錯誤

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

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

嘗試重新載入網頁

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

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

在Chrome瀏覽器中刷新網頁

在Chrome瀏覽器中刷新網頁

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

如果等待並重新載入該站點不能解決504錯誤問題,則可以檢查該站點對所有人還是對您而言都是關閉的。測試站點停機的兩個出色的在線工具是「每個人都停機」或「只是我」,現在是否停機?

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

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

重新啟動您的網路設備

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

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

檢查您的代理設置

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

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

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

在Windows 10中更改“代理”設置

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

DNS問題

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

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

您可以使用whatsmydns.net DNS Checker或DNSMap等免費工具來查看您的DNS是否在全球範圍內傳播。

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

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

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

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

ipconfig / flushdns
使用命令提示符刷新DNS緩存

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

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

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

須藤killall -HUP mDNSResponder

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

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

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

使用WordPress,我們的流量增長了1,187%。
我們將向您展示如何。

加入20,000多個其他人,他們每周都會收到有關WordPress內部技巧的新聞!

現在訂閱

成功!感謝您的訂閱

您將在一周內收到下一期的Kinsta新聞通訊。

訂閱Kinsta新聞通訊

訂閱

我同意條款和條件以及隱私政策

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

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

您可以嘗試使用的一些可靠的工具包括Google Public DNS,Cloudflare 1.1.1.1,Quad9 DNS和Cisco OpenDNS。

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

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

暫時禁用您站點的CDN

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

但是大多數CDN默認情況下不會啟用此功能,因為在大多數站點(例如WordPress管理儀錶盤)上緩存動態資產很複雜。

在Cloudflare中設置「緩存所有內容」頁面規則

在Cloudflare中設置「緩存所有內容」頁面規則

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

使用其他可用於連接CDN的插件(例如WP Rocket,Breeze,W3 Total Cache)也是如此。

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

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

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

提供完整代理服務的CDN(例如Cloudflare或Sucuri)在其邊緣伺服器和您的原始伺服器之間具有額外的防火牆。因此,在使用它們時,您可能會更頻繁地遇到HTTP 5xx錯誤。它們中的大多數會緩存源伺服器返回的5xx錯誤,因此很容易對其進行故障排除。

Cloudflare的免費計劃很容易引發5xx錯誤。不幸的是,由於它是一項完整的代理服務,因此無法快速禁用它。但是,在為此歸咎於Cloudflare之前,請知道Cloudflare顯示了504網關超時錯誤的兩種變化。

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

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

Cloudflare的自定義錯誤504屏幕

Cloudflare的自定義錯誤504屏幕

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

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

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

504網關超時錯誤由Cloudflare引起

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

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

最有可能的是,Cloudflare已經意識到了這個問題,並且已經在進行修復。您可以通過檢查Cloudflare系統狀態網頁來確認。另外,您可以聯繫Cloudflare支持以更快地解決問題。

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

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

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

您上傳到站點的大小也可能是伺服器超時的原因。無論是免費版還是專業版,Cloudflare都會將上傳文件的大小(每個HTTP POST請求)限制為100 MB。

Cloudflare各種計劃的「最大上傳大小」限制

Cloudflare各種計劃的「最大上傳大小」限制

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

如果您將Cloudflare與WordPress結合使用,建議您使用其免費插件,並從緩存中排除關鍵URL(例如WordPress管理儀錶盤)。您可以參考Kinsta關於如何為WordPress配置Cloudflare設置的詳細信息。

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

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

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

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

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

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

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

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

遷移到Kinsta的許多客戶看到總的載入時間大大減少。

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

切換到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小時。如果您的網站未正確響應,它將通過電子郵件或簡訊通知您。

使用updown.io監視您的網站

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

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

WebGazer網站監視工具的儀錶板

WebGazer網站監視工具的儀錶板

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

有關詳細說明,請查看Kinsta關於託管WordPress託管的重要性的文章。

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

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

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

MyKinsta Analytics儀錶板

MyKinsta Analytics儀錶板

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

在MyKinsta儀錶板中查看「頂級客戶端IP」

在MyKinsta儀錶板中查看「頂級客戶端IP」

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

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

MyKinsta中的「緩存分析」屏幕

MyKinsta中的「緩存分析」屏幕

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

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

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

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

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

損壞的WordPress資料庫

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

修復損壞的WordPress資料庫取決於問題。諸如WP-DBManager之類的插件可輕鬆診斷資料庫問題並修復它們。我建議您閱讀Kinsta有關修復WordPress資料庫問題的詳細演練,以開始使用。

檢查您網站的插件和主題

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

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

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

如果可以訪問管理儀錶板,則可以轉到「插件」屏幕,從「批量操作」菜單中選擇「停用」,選中所有插件,然後單擊「應用」按鈕。這將禁用所有插件。

停用WordPress中的插件

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

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

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

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

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

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

檢查錯誤日誌

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

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

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

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

如果您的主機沒有日誌記錄工具,則可以通過將以下代碼添加到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。

重要提示:如果在Kinsta環境中啟用了WP_DEBUG,它將把所有錯誤路由到debug.log文件,而不是MyKinsta儀錶板中的error.log。

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

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

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

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

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

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

您可以參考Apache或Nginx的日誌記錄相關文檔以獲取更多信息。

正確配置Apache或Nginx設置

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

對於Apache Web伺服器

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

超時600

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

您只能將此指令添加到httpd.conf文件中,而不能添加到.htaccess文件中。由於大多數共享託管提供程序不允許您修改httpd.conf文件,因此您可以嘗試在.htaccess文件中嘗試增加LimitRequestBody指令的值。

然後將以下行添加到您的php.ini文件中:

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池配置文件。您可以在Nginx伺服器中的/etc/php7.4/fpm/pool.d/www.conf位置找到它(確切的路徑可能因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文件中添加以下指令,使其對伺服器超時更為寬容:

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網關超時錯誤一樣。這是因為它們全都發生在伺服器端。這些錯誤包括:

  • 500內部伺服器錯誤
  • 501未實現錯誤
  • 502錯誤的網關錯誤
  • 503服務不可用錯誤

由客戶端問題引起的其他HTTP錯誤(例如404 Not Found錯誤)也類似於504錯誤。您可以參考Kinsta的詳細指南和HTTP狀態代碼列表以獲取更多信息。

概要

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

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

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

從簡單的靜態網站到複雜的電子商務和會員網站,Kinsta的託管計劃旨在容納所有類型的網站。即使您的站點使用的伺服器資源超出了託管計劃所提供的資源,Kinsta的自動擴展功能也意味著您的站點將始終在線。

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

如果您喜歡這篇文章,那麼您會喜歡Kinsta的WordPress託管平台。加速您的網站並獲得我們經驗豐富的WordPress團隊的24/7支持。我們基於Google Cloud的基礎架構專註於自動擴展,性能和安全性。讓我們向您展示Kinsta的與眾不同!查看我們的計劃

相關文章