新聞中心

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),昔陽網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:昔陽等地區(qū)。昔陽做網(wǎng)站價(jià)格咨詢:18982081108
在504網(wǎng)關(guān)超時(shí)錯(cuò)誤是最常見的http的一個(gè)5XX面臨網(wǎng)站所有者和網(wǎng)站訪問者的錯(cuò)誤。對于許多WordPress博客和電子商務(wù)平臺,了解如何修復(fù)此類服務(wù)器錯(cuò)誤對于防止來之不易的訪問者跳轉(zhuǎn)到競爭對手網(wǎng)站至關(guān)重要。
由于504 Gateway Timeout錯(cuò)誤沒有告訴您發(fā)生的原因,因此很難確定導(dǎo)致服務(wù)器超時(shí)的原因。本文將幫助您詳細(xì)了解它,了解如何診斷其原因,然后修復(fù)它。
在嘗試了文章中提到的所有各種解決方案后,您的網(wǎng)站應(yīng)該立即啟動(dòng)并運(yùn)行。
什么是504網(wǎng)關(guān)超時(shí)錯(cuò)誤?
每次您在瀏覽器中訪問網(wǎng)站時(shí),瀏覽器都會向托管該網(wǎng)站的Web服務(wù)器發(fā)送請求。服務(wù)器處理請求并使用請求的資源進(jìn)行響應(yīng)。
HTTP請求和響應(yīng)的工作原理
服務(wù)器響應(yīng)包括許多HTTP狀態(tài)代碼之一,以向?yàn)g覽器指示響應(yīng)的狀態(tài)。但并非所有這些 HTTP 狀態(tài)代碼都是錯(cuò)誤。例如,200 OK狀態(tài)代碼意味著服務(wù)器成功處理了請求并且“一切正?!薄?/p>
在5XX類的HTTP狀態(tài)代碼表示什么的錯(cuò)誤的服務(wù)器,該服務(wù)器是意識到這一點(diǎn),并不能進(jìn)行客戶端的請求。因此,它們也稱為服務(wù)器錯(cuò)誤5xx狀態(tài)代碼。
正式地,在5xx類下指定了五個(gè)狀態(tài)代碼(500、501、502、503、 504 )。您也可能會遇到許多非官方代碼(506 、 507 、 509、520等)。
IETF將504網(wǎng)關(guān)超時(shí)錯(cuò)誤定義為:
504(網(wǎng)關(guān)超時(shí))狀態(tài)代碼表示服務(wù)器在充當(dāng)網(wǎng)關(guān)或代理時(shí),沒有收到來自它需要訪問以完成請求的上游服務(wù)器的及時(shí)響應(yīng)。
為了進(jìn)一步簡化,當(dāng)兩個(gè)服務(wù)器參與處理請求時(shí)會發(fā)生此錯(cuò)誤。第一個(gè)服務(wù)器(通常是主服務(wù)器)超時(shí),等待第二個(gè)服務(wù)器(上游服務(wù)器)的響應(yīng)。
504網(wǎng)關(guān)超時(shí)錯(cuò)誤以各種形式表現(xiàn)出來。以下是它通常出現(xiàn)的一些方式:
Chrome瀏覽器中的“HTTP ERROR 504”
504 Gateway Timeout錯(cuò)誤類似于502 Bad Gateway錯(cuò)誤,表示第一臺服務(wù)器收到了來自第二臺服務(wù)器(上游服務(wù)器)的無效響應(yīng)。
Chrome DevTools中的“504 GATEWAY TIMEOUT”狀態(tài)代碼
504網(wǎng)關(guān)超時(shí)錯(cuò)誤的變體
瀏覽器會在其中顯示任何 504 Gateway Timeout 錯(cuò)誤,就像任何其他錯(cuò)誤一樣。由于有各種操作系統(tǒng)、Web 服務(wù)器、瀏覽器和用戶代理,因此它可以以多種方式顯示。
以下是您可能遇到的一些常見 504 錯(cuò)誤消息變體:
- 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
- 白屏
以上所有錯(cuò)誤響應(yīng),盡管措辭不同,都指向相同的504網(wǎng)關(guān)超時(shí)服務(wù)器錯(cuò)誤。
Web服務(wù)器和網(wǎng)站可以自定義向用戶顯示504網(wǎng)關(guān)超時(shí)錯(cuò)誤的方式。其中一些可能很酷!這是平息訪客失望的絕妙策略。
GitHub的自定義HTTP 504錯(cuò)誤頁面
504網(wǎng)關(guān)超時(shí)錯(cuò)誤對SEO的影響
所有5xx錯(cuò)誤都會阻止網(wǎng)頁加載,從而對用戶體驗(yàn)不利。因此,像谷歌這樣的搜索引擎會認(rèn)真對待這些錯(cuò)誤。如果錯(cuò)誤持續(xù)很長時(shí)間,它甚至可能導(dǎo)致從搜索引擎結(jié)果中取消對網(wǎng)頁的索引。
例如,當(dāng)Google蜘蛛偶然發(fā)現(xiàn)503 Service Unavailable錯(cuò)誤時(shí),他們會明白這是一個(gè)臨時(shí)問題,因?yàn)樗饕糜趩⒂谜军c(diǎn)維護(hù)模式。因此,他們稍后會再次嘗試抓取該頁面。
504網(wǎng)關(guān)超時(shí)錯(cuò)誤不一定是暫時(shí)的,因?yàn)樗赡苁怯啥喾N原因造成的。如果您的網(wǎng)站僅關(guān)閉幾分鐘,并且蜘蛛程序每分鐘都嘗試多次抓取它,它們將嘗試從緩存中提供該頁面。他們甚至不會注意到它。
但是,如果您的網(wǎng)站停機(jī)6個(gè)多小時(shí)或更長時(shí)間,那么Google會將504錯(cuò)誤視為您需要盡快修復(fù)的嚴(yán)重網(wǎng)站范圍問題。這會對您的SEO產(chǎn)生負(fù)面影響。
在Google Search Console中查看抓取錯(cuò)誤
Google Search Console是監(jiān)控網(wǎng)站HTTP 5xx錯(cuò)誤的最佳SEO工具之一。
504網(wǎng)關(guān)超時(shí)錯(cuò)誤原因
由于504錯(cuò)誤是由于服務(wù)器之間的超時(shí)造成的,因此問題可能不在于客戶端的設(shè)備或互聯(lián)網(wǎng)連接。這還包括您的設(shè)備和連接。
504網(wǎng)關(guān)超時(shí)錯(cuò)誤表示W(wǎng)eb服務(wù)器等待來自另一臺服務(wù)器的響應(yīng)時(shí)間過長并且“超時(shí)”。此超時(shí)可能有多種原因:另一臺服務(wù)器運(yùn)行不正常、過載或關(guān)閉。
另一個(gè)服務(wù)器不必總是在外部(例如CDN、API網(wǎng)關(guān))。它也可以是主Web服務(wù)器(例如反向代理服務(wù)器、數(shù)據(jù)庫服務(wù)器)內(nèi)的類似服務(wù)器的實(shí)體。
如何修復(fù)504網(wǎng)關(guān)超時(shí)錯(cuò)誤
如果不了解WordPress站點(diǎn)的確切詳細(xì)信息,例如其服務(wù)器配置、托管計(jì)劃、第三方插件及其吸引的流量,您可能會發(fā)現(xiàn)修復(fù)504網(wǎng)關(guān)超時(shí)錯(cuò)誤令人沮喪和不知所措。
由于涉及許多變量,我建議您首先修復(fù)客戶端問題,這非常罕見,然后轉(zhuǎn)向修復(fù)服務(wù)器端問題。他們通常是 504 錯(cuò)誤的罪魁禍?zhǔn)住?/p>
嘗試重新加載網(wǎng)頁
遇到504網(wǎng)關(guān)超時(shí)錯(cuò)誤時(shí),您可以嘗試的第一件事是等待幾分鐘,然后嘗試重新加載頁面。
您可以按F5鍵盤快捷鍵在大多數(shù)瀏覽器中刷新/重新加載網(wǎng)頁。要在重新加載之前刪除頁面的瀏覽器緩存,您可以改為按CTRL+F5快捷鍵組合。
在Chrome瀏覽器中刷新網(wǎng)頁
在此期間,您還可以嘗試在不同的瀏覽器中加載該站點(diǎn),以排除該問題。由于大多數(shù)504錯(cuò)誤是由于服務(wù)器暫時(shí)過載造成的,因此使用此解決方案應(yīng)該會讓您的網(wǎng)站立即恢復(fù)。
如果等待并重新加載站點(diǎn)不能解決504錯(cuò)誤問題,您可以檢查站點(diǎn)是否對所有人或只有您自己關(guān)閉。用于測試站點(diǎn)停機(jī)時(shí)間的兩個(gè)有用的在線工具是Down for Everyone or Just Me和Is It Down Right Now?
測試wbolt.com在線狀態(tài)
重新啟動(dòng)您的網(wǎng)絡(luò)設(shè)備
有時(shí),調(diào)制解調(diào)器或路由器等網(wǎng)絡(luò)設(shè)備的問題可能會導(dǎo)致504網(wǎng)關(guān)超時(shí)錯(cuò)誤。重新啟動(dòng)這些設(shè)備可以幫助您解決問題。
雖然您可以按任意順序關(guān)閉所有這些網(wǎng)絡(luò)設(shè)備,但重新打開它們的順序很重要。通常,按照從Internet服務(wù)提供商到您的主要客戶端設(shè)備的連接順序,從“由外到內(nèi)”打開這些設(shè)備。
檢查您的代理設(shè)置
代理服務(wù)器位于您的設(shè)備和互聯(lián)網(wǎng)之間。它主要用于通過從網(wǎng)站和網(wǎng)絡(luò)服務(wù)器(例如使用VPN)隱藏私人信息(例如設(shè)備位置)來增強(qiáng)在線隱私。
雖然代理服務(wù)器很少會導(dǎo)致504錯(cuò)誤,但錯(cuò)誤的代理服務(wù)器設(shè)置有時(shí)可能是原因。您可以禁用代理服務(wù)器并嘗試重新加載網(wǎng)頁以查看它是否會修復(fù)錯(cuò)誤。
在Windows 10中更改“代理”設(shè)置
大多數(shù)客戶端不使用代理服務(wù),因此如果您確信不使用任何代理服務(wù)器,則可以跳過此步驟。但是,您可能在不知情的情況下進(jìn)行了設(shè)置。我建議您檢查設(shè)備和瀏覽器的代理設(shè)置以排除此原因。
DNS問題
服務(wù)器端或客戶端(或兩者)的DNS問題也可能導(dǎo)致504網(wǎng)關(guān)超時(shí)錯(cuò)誤。
服務(wù)器端DNS問題的最可能原因是FQDN(完全限定域名)未解析正確的IP地址或DNS服務(wù)器沒有響應(yīng)。通常,當(dāng)您剛剛將WordPress站點(diǎn)遷移到新服務(wù)器或主機(jī)時(shí),就會發(fā)生這種情況。因此,等待域的DNS記錄完全傳播很重要,這可能需要長達(dá)24小時(shí)。
您可以使用whatsmydns.net DNS Checker或DNSMap等免費(fèi)工具來查看您的DNS是否已傳播到全球。
在whatsmydns.net上檢查您的域的DNS傳播
要修復(fù)客戶端DNS問題,您可以嘗試刷新本地DNS緩存。這就像清除瀏覽器緩存一樣,除了這里,您是從操作系統(tǒng)中清除DNS緩存。
如果您使用的是Windows,則可以通過打開命令提示符并輸入以下指令來刷新DNS緩存:
ipconfig /flushdns
在Windows中使用命令提示符刷新DNS緩存
如果有效,您應(yīng)該會看到“Successfully flushed the DNS resolver Cache.”。
對于最新的macOS版本,您可以打開終端并運(yùn)行以下命令:
sudo killall -HUP mDNSResponder
該過程完成后,您將不會在 macOS 中看到任何通知,但您可以通過將命令附加到您的自定義消息來更改通知。
sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
如果您使用的是較舊的macOS版本,您需要輸入的命令會根據(jù)您運(yùn)行的macOS版本而有所不同。更詳細(xì)的可以參考清除DNS緩存教程中的macOS部分。
如果您使用的是Linux操作系統(tǒng),那么該過程與macOS非常相似,因?yàn)榧词筁inux也使用終端作為其命令行界面。由于有許多Linux發(fā)行版,您需要運(yùn)行的確切命令可能因發(fā)行版而異。您可以查看DNS緩存指南以獲取更多信息。
最后,您可以臨時(shí)更改您的客戶端DNS服務(wù)器。默認(rèn)情況下,您的ISP會自動(dòng)為您分配DNS服務(wù)器。但是您可以暫時(shí)將這些更改為公共DNS IP。
您可以試用的一些可靠DNS服務(wù)器是Google Public DNS、Cloudflare 1.1.1.1、Quad9 DNS和Cisco OpenDNS。
在Windows 10中設(shè)置自定義DNS服務(wù)器
暫時(shí)禁用您站點(diǎn)的CDN
有時(shí),問題也可能與您的內(nèi)容交付網(wǎng)絡(luò) (CDN) 有關(guān)。如果站點(diǎn)的源服務(wù)器不可訪問,大多數(shù)CDN將嘗試從其緩存中提供完整的網(wǎng)頁。
但是大多數(shù)CDN默認(rèn)不啟用此功能,因?yàn)樵诖蠖鄶?shù)站點(diǎn)(例如WordPress管理儀表盤)上緩存動(dòng)態(tài)資產(chǎn)很復(fù)雜。
在Cloudflare中設(shè)置“緩存所有內(nèi)容”頁面規(guī)則
解決此問題的一種直接方法是暫時(shí)禁用您的CDN。例如,如果您使用免費(fèi)的WordPress插件-CDN Enabler將您的站點(diǎn)資產(chǎn)鏈接到CDN URL,那么您可以停用該插件并測試重新加載您的站點(diǎn)。
使用您可能用來連接到CDN的任何其他插件(例如WP Rocket、Breeze、W3 Total Cache)也是如此。
如果您無法訪問站點(diǎn)的管理儀表板,您可以通過SFTP重命名插件的文件夾名稱來禁用該插件。
通過重命名插件文件夾名稱,通過SFTP禁用所有插件
像Cloudflare或Sucuri這樣的CDN提供完整的代理服務(wù),在它們的邊緣服務(wù)器和你的源服務(wù)器之間有額外的防火墻。因此,您在使用它們時(shí)可能會更頻繁地遇到HTTP 5xx錯(cuò)誤。它們中的大多數(shù)緩存了您的源服務(wù)器返回的5xx錯(cuò)誤,因此很容易對它們進(jìn)行故障排除。
Cloudflare的免費(fèi)計(jì)劃容易引發(fā)5xx錯(cuò)誤。不幸的是,因?yàn)樗且粋€(gè)完整的代理服務(wù),所以沒有快速的方法來禁用它。但在你為此責(zé)怪Cloudflare之前,請了解Cloudflare顯示了 504 Gateway Timeout錯(cuò)誤的兩種變體。
Cloudflare中的504網(wǎng)關(guān)超時(shí)(變體 1)
當(dāng)您站點(diǎn)的源服務(wù)器以標(biāo)準(zhǔn)HTTP 504響應(yīng)進(jìn)行響應(yīng)時(shí),Cloudflare將向您顯示自定義504網(wǎng)關(guān)超時(shí)錯(cuò)誤屏幕。
Cloudflare的自定義錯(cuò)誤504屏幕
在這里,問題在于您的Web服務(wù)器而不是Cloudflare。您可以嘗試使用下面提到的其他解決方案來修復(fù)它,或者聯(lián)系您的托管服務(wù)提供商的支持以獲得技術(shù)幫助。
Cloudflare的504網(wǎng)關(guān)超時(shí)(變體 2)
如果Cloudflare導(dǎo)致504 Gateway Timeout錯(cuò)誤,錯(cuò)誤屏幕將提及“cloudflare”,這是當(dāng)前所有Cloudflare資產(chǎn)的標(biāo)準(zhǔn)服務(wù)器名稱。通常,錯(cuò)誤屏幕將顯示如下:
Cloudflare導(dǎo)致的504網(wǎng)關(guān)超時(shí)錯(cuò)誤屏幕
由于Cloudflare本身沒有響應(yīng),因此您不會在此處看到任何帶有Cloudflare品牌的錯(cuò)誤屏幕。
最有可能的是,Cloudflare已經(jīng)意識到這個(gè)問題并且正在著手修復(fù)。您可以通過查看Cloudflare系統(tǒng)狀態(tài)網(wǎng)頁來確認(rèn)這一點(diǎn)?;蛘撸梢月?lián)系Cloudflare支持以更快地解決問題。
在cloudflarestatus.com檢查Cloudflare系統(tǒng)狀態(tài)
由于大量上傳,Cloudflare的504網(wǎng)關(guān)超時(shí)
上傳到站點(diǎn)的大小也可能是服務(wù)器超時(shí)的原因。Cloudflare將Free和Pro計(jì)劃的上傳文件大?。總€(gè)HTTP POST請求)限制為100MB。
Cloudflare對各種計(jì)劃的“最大上傳大小”限制
問題可能出在您的主機(jī)端或Cloudflare。您可以通過使用DNS主機(jī)文件繞過Cloudflare并再次嘗試上傳來找出確切原因。
如果您將Cloudflare與WordPress一起使用,我建議您使用他們的免費(fèi)插件并從緩存中排除關(guān)鍵URL(例如WordPress管理儀表盤)。
服務(wù)器問題(請咨詢您的主機(jī))
服務(wù)器問題是面臨504網(wǎng)關(guān)超時(shí)錯(cuò)誤的最常見原因之一。由于大多數(shù)WordPress站點(diǎn)都托管在Nginx或Apache網(wǎng)絡(luò)服務(wù)器上,因此Nginx或Apache正在等待某物的響應(yīng)并超時(shí)。
大多數(shù)提供共享托管計(jì)劃的 WordPress 主機(jī)都沒有此功能。因此,與您的服務(wù)器托管在同一臺服務(wù)器上的高流量站點(diǎn)也可能導(dǎo)致您的站點(diǎn)拋出504錯(cuò)誤。
過載的服務(wù)器并不是服務(wù)器超時(shí)的唯一原因。504錯(cuò)誤可能有許多其他原因:
緩慢的服務(wù)器基礎(chǔ)設(shè)施
您用來托管WordPress站點(diǎn)的服務(wù)器可能沒有足夠的資源來處理負(fù)載。這就像在十年前的PC上玩現(xiàn)代圖形密集型視頻游戲。
服務(wù)器只是掛斷了試圖為網(wǎng)站提供服務(wù)。此問題的唯一解決方案是升級到具有更好基礎(chǔ)架構(gòu)的服務(wù)器。
需要更多PHP worker
PHP worker用于執(zhí)行您的WordPress站點(diǎn)的代碼。一個(gè)每月有50,000名訪問者的電子商務(wù)網(wǎng)站比具有相同流量的簡單博客需要更多的資源。如果所有服務(wù)器的PHP worker都忙,他們將建立一個(gè)隊(duì)列。
當(dāng)隊(duì)列過大時(shí),服務(wù)器會忽略舊的請求,這可能會導(dǎo)致服務(wù)器拋出504網(wǎng)關(guān)錯(cuò)誤。您可以向您的房東咨詢有關(guān)增加PHP worker數(shù)量的問題。這將允許您的站點(diǎn)同時(shí)執(zhí)行多個(gè)請求。
防火墻問題
您服務(wù)器的防火墻可能有一些錯(cuò)誤或配置不正確。也許,它的一些規(guī)則會阻止服務(wù)器正確建立連接。要知道防火墻是否是罪魁禍?zhǔn)?,您可以檢查服務(wù)器的錯(cuò)誤日志。
網(wǎng)絡(luò)連接問題
代理服務(wù)器和Web服務(wù)器之間的連接問題可能會導(dǎo)致響應(yīng)HTTP請求的延遲。如果您使用負(fù)載平衡器,它也可能存在網(wǎng)絡(luò)連接問題。
HTTP超時(shí)
當(dāng)Web服務(wù)器和客戶端之間的連接保持打開時(shí)間過長時(shí),可能會發(fā)生HTTP超時(shí)。對于WordPress站點(diǎn),這通常發(fā)生在運(yùn)行WordPress導(dǎo)入時(shí)。解決此問題的一種方法是切換到更快的Internet連接。
您還可以使用支持WP-CLI的工具直接在服務(wù)器上運(yùn)行腳本,完全繞過HTTP連接。例如,您可以使用wp import WP-CLI命令直接通過命令行界面運(yùn)行WordPress Importer插件。
重要提示: 504網(wǎng)關(guān)超時(shí)錯(cuò)誤類似于503服務(wù)不可用錯(cuò)誤或502錯(cuò)誤網(wǎng)關(guān)。但它們都是不同的。
要自行監(jiān)控站點(diǎn)的停機(jī)時(shí)間,您可以使用updown.io之類的工具。它會通過向其發(fā)送HTTP請求來定期檢查您網(wǎng)站的狀態(tài)(或任何URL)。您可以將檢查頻率設(shè)置為15秒到1小時(shí)。如果您的網(wǎng)站沒有正確響應(yīng),它會通過電子郵件或短信通知您。
使用updown.io輕松監(jiān)控您的網(wǎng)站
您將通過updown.io的每個(gè)帳戶獲得大量免費(fèi)積分,但如果您正在尋找更便宜的替代品,您可以查看WebGazer或UptimeRobot。這兩種工具都將幫助您每5分鐘免費(fèi)監(jiān)控您網(wǎng)站的正常運(yùn)行時(shí)間。對于大多數(shù)網(wǎng)站所有者來說,這已經(jīng)足夠了。
WebGazer網(wǎng)站監(jiān)控工具的儀表盤
監(jiān)控您的網(wǎng)站將使您了解它的停機(jī)頻率。如果您使用共享主機(jī)提供商,這將特別有用。大多數(shù)托管WordPress主機(jī)會自動(dòng)為您處理此問題。因此,始終建議與他們一起去。
垃圾郵件、機(jī)器人或DDoS攻擊
惡意攻擊者可以通過發(fā)送過多和/或資源密集型請求來使您的Web服務(wù)器爬行。如果您的站點(diǎn)被機(jī)器人發(fā)送垃圾郵件或遭受DDoS攻擊,它可能會使您的服務(wù)器不堪重負(fù),并導(dǎo)致許多真正的用戶出現(xiàn) 504 網(wǎng)關(guān)超時(shí)錯(cuò)誤。
您可以查看服務(wù)器流量和分析,看看是否可以發(fā)現(xiàn)站點(diǎn)流量中的任何不規(guī)則模式。如果您使用寶塔面板管理您的網(wǎng)站,您可以通過監(jiān)控管理查看相關(guān)數(shù)據(jù)。
寶塔面板監(jiān)控管理界面
最后,您可以使用WordPress安全插件通過發(fā)現(xiàn)和阻止令人擔(dān)憂的流量/IP 來增強(qiáng)您網(wǎng)站的安全性。您也可以要求您的主機(jī)阻止某些IP。
根據(jù)攻擊的長度和規(guī)模,這可能是一個(gè)永無止境的將IP列入黑名單的過程,因?yàn)樵S多攻擊者在被阻止后更改了他們的IP和代理地址。
您可以使用Cloudflare或Sucuri等專用安全解決方案來保護(hù)您的站點(diǎn)免受DDoS攻擊和垃圾郵件機(jī)器人的侵害。有關(guān)更多信息,您可以安裝Sucuri以阻止DDoS攻擊。
損壞的WordPress數(shù)據(jù)庫
有時(shí),504網(wǎng)關(guān)超時(shí)錯(cuò)誤可能是因?yàn)閿?shù)據(jù)庫損壞,尤其是在WordPress站點(diǎn)中。通常,這是由于損壞的數(shù)據(jù)庫表或文件造成的。有時(shí),它也可能是由嚴(yán)重的安全問題引起的,例如您的網(wǎng)站或數(shù)據(jù)庫被黑客入侵。
修復(fù)損壞的WordPress數(shù)據(jù)庫取決于問題。WP-DBManager之類的插件可以輕松診斷數(shù)據(jù)庫問題并修復(fù)它們。我建議您閱讀關(guān)于修復(fù)WordPress數(shù)據(jù)庫問題的詳細(xì)教程。
檢查您網(wǎng)站的插件和主題
大多數(shù)情況下,第三方插件和主題不會導(dǎo)致504錯(cuò)誤。但是它們有可能導(dǎo)致服務(wù)器超時(shí),通常是通過將插件/主題生成的許多未緩存請求排隊(duì)。由于這會占用大量服務(wù)器的PHP worker,因此可能會導(dǎo)致504錯(cuò)誤。
這個(gè)問題的一個(gè)很好的例子是WooCommerce,這是一個(gè)安裝插件,用于向WordPress網(wǎng)站添加電子商務(wù)功能。
解決此問題的最簡單方法是停用所有插件。請記住,如果您只是停用插件,您不會丟失任何數(shù)據(jù)。
如果您可以訪問管理儀表盤,則可以轉(zhuǎn)到插件,從批量操作菜單中選擇停用,選中所有插件,然后點(diǎn)擊應(yīng)用按鈕。這將禁用您的所有插件。
通過WP管理儀表盤停用所有WordPress插件
如果您無法訪問您的管理后臺,您可以使用之前描述的方法通過SFTP禁用插件。只需重命名主插件文件夾名稱即可批量禁用所有插件。
停用所有插件后,請檢查您的網(wǎng)站是否正確加載。如果它有效,您必須激活每個(gè)插件,在啟用每個(gè)插件后測試站點(diǎn)。
最后,確保您的插件、主題和WordPress核心是最新的。另外,請確保您的服務(wù)器正在運(yùn)行推薦的PHP版本。
如果您覺得這太過分了,您可以隨時(shí)向您的服務(wù)器提供商尋求幫助。
在最壞的情況下,例如低效查詢或插件/主題中的錯(cuò)誤代碼,您可以聘請WordPress開發(fā)人員來解決問題。
檢查錯(cuò)誤日志
在對WordPress站點(diǎn)上的504錯(cuò)誤進(jìn)行故障排除和調(diào)試時(shí),查看錯(cuò)誤日志非常有用。這可以幫助您快速縮小網(wǎng)站上的問題,特別是如果它是由您網(wǎng)站上要求苛刻的插件引起的。
您可以通過將以下代碼添加到wp-config.php文件來啟用WordPress調(diào)試模式:
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );
WP_DEBUG不斷啟用或禁用WordPress的調(diào)試模式。它有兩個(gè)可選的伴隨常量,可以擴(kuò)展其功能。WP_DEBUG_LOG常量指示將所有錯(cuò)誤保存到目錄/wp-content/中的debug.log文件中。如果您沒有看到這個(gè)文件,您可以隨時(shí)創(chuàng)建一個(gè)。
WP_DEBUG_DISPLAY常量控制調(diào)試日志是否顯示在HTML頁面上。將此設(shè)置為false將隱藏所有錯(cuò)誤,但您可以稍后查看錯(cuò)誤,因?yàn)槟惨褜⑵涠xWP_DEBUG_LOG為true。
您還可以通過SFTP下載原始WordPress錯(cuò)誤日志文件。通常,您可以在服務(wù)器根目錄中名為“l(fā)ogs”的文件夾中找到錯(cuò)誤日志。
通過SFTP訪問WordPress錯(cuò)誤日志文件夾
最后,您可以檢查服務(wù)器日志文件。根據(jù)您用于托管WordPress站點(diǎn)的服務(wù)器,它們通常位于以下位置:
- Apache:
/var/log/apache2/error.log/ - nginx:
/var/log/nginx/error.log/
更多信息可以參考Apache或Nginx的日志相關(guān)文檔。
正確配置Apache或Nginx設(shè)置
您可以編輯服務(wù)器配置文件以增加特定指令的資源限制。這可以幫助您解決504網(wǎng)關(guān)超時(shí)錯(cuò)誤。
對于Apache 網(wǎng)絡(luò)服務(wù)器
首先,將以下代碼添加到您的httpd.conf:
TimeOut 600
此設(shè)置定義了服務(wù)器在將其標(biāo)記為網(wǎng)絡(luò)超時(shí)問題之前等待特定請求的時(shí)間。它的默認(rèn)值為60秒(Apache 2.4版本)。
您只能在httpd.conf文件中添加此指令,而不能在.htaccess文件中添加。由于大多數(shù)共享主機(jī)提供商不允許你修改的httpd.conf文件,你可以嘗試增加值LimitRequestBody指令在你的.htaccess文件來代替。
然后將以下行添加到您的php.ini文件中:
max_execution_time 300
PHP的max_execution_time指令的默認(rèn)值為30 秒。增加它將使您網(wǎng)站的PHP腳本運(yùn)行更長時(shí)間。
對于Nginx網(wǎng)絡(luò)服務(wù)器
如果您在Nginx+FastCGI進(jìn)程管理器 (PHP-FPM) 上運(yùn)行WordPress站點(diǎn)或使用Nginx作為Apache的反向代理,您可以調(diào)整服務(wù)器設(shè)置以幫助防止504網(wǎng)關(guān)超時(shí)錯(cuò)誤。
(1)Nginx+FastCGI (PHP-FPM)上的504網(wǎng)關(guān)超時(shí)錯(cuò)誤
首先,您必須編輯PHP-FPM池配置文件。您可以在Nginx服務(wù)器中的/etc/php7.4/fpm/pool.d/www.conf位置找到它(確切路徑可能因PHP版本而異)?;蛘撸梢栽诮K端中運(yùn)行以下命令來編輯PHP-FPM池配置文件:
sudo nano /etc/php/7.2/fpm/pool.d/www.conf
接下來,設(shè)置以下指令:
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的確切代碼將根據(jù)您的服務(wù)器上安裝的PHP版本而有所不同。測試您的網(wǎng)站,看看它是否已解決問題。
(2)Nginx代理上的504網(wǎng)關(guān)超時(shí)錯(cuò)誤
如果您使用Nginx作為Apache的反向代理服務(wù)器,那么您可以通過將以下指令添加到您的nginx.conf文件來使其對服務(wù)器超時(shí)更加寬容:
proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600;
不要忘記在進(jìn)行更改后重新加載Nginx。
sudo service nginx reload
其他HTTP錯(cuò)誤,如504網(wǎng)關(guān)超時(shí)
正如文章前面提到的,許多其他HTTP 5xx錯(cuò)誤就像504網(wǎng)關(guān)超時(shí)錯(cuò)誤一樣。這是因?yàn)樗鼈兌及l(fā)生在服務(wù)器端。這些錯(cuò)誤包括:
- 500內(nèi)部服務(wù)器錯(cuò)誤
- 501 Not Implemented
- 502錯(cuò)誤網(wǎng)關(guān)
- 503服務(wù)不可用錯(cuò)誤
由于客戶端問題導(dǎo)致的其他HTTP錯(cuò)誤,例如404 Not Found錯(cuò)誤,也類似于504錯(cuò)誤。您可以參考HTTP狀態(tài)代碼列表以獲取更多信息。
小結(jié)
由于多種原因,您的WordPress網(wǎng)站可能會受到504網(wǎng)關(guān)超時(shí)錯(cuò)誤的影響。在本文中,您學(xué)習(xí)了如何對它們進(jìn)行故障排除。通常,這些錯(cuò)誤是由服務(wù)器端問題引起的,在這種情況下,您可以聯(lián)系您的主機(jī)并快速解決問題。
但是,您還必須了解,此錯(cuò)誤可能是由于第三方插件、主題、服務(wù)、低效的數(shù)據(jù)庫查詢或其中兩個(gè)或多個(gè)的組合造成的。如果您要最大限度地利用服務(wù)器資源(例如PHP worker),建議優(yōu)化您的站點(diǎn)以提高性能。
如果您仍然發(fā)現(xiàn)您的網(wǎng)站超時(shí),那么您很可能需要升級您的托管計(jì)劃或增加PHP worker的數(shù)量。我建議您僅在用盡本文中描述的所有其他解決方案后才考慮此選項(xiàng)。
當(dāng)前名稱:如何修復(fù)WordPress網(wǎng)站504網(wǎng)關(guān)超時(shí)錯(cuò)誤
分享URL:http://m.5511xx.com/article/dpgspjs.html


咨詢
建站咨詢
