什麼是HTTP 429 Error及如何修復該錯誤

錯誤型別:
HTTP錯誤
錯誤名稱:
HTTP 429错误码
英文名稱:
HTTP 429 Error
錯誤描述:
在某些情况下,当您的服务器检测到用户代理尝试在短时间内过于频繁地访问特定页面时,它会触发速率限制功能。最常见的例子是用户(或攻击者)反复尝试登录您的站点。
錯誤變體:
“429 error”
“HTTP 429”
“Error 429 (Too Many Requests)”
更多資訊

什麼是HTTP 429 Error

您可以得到的“最佳”錯誤型別是那些準確地告訴您導致問題的原因的錯誤。HTTP 429 Error就是這樣的錯誤,您會立即知道問題是什麼,因此您可以立即開始確定罪魁禍首。

簡而言之,當某人或某物向您的伺服器發出過多請求時,就會出現429錯誤。如果您使用的是WordPress,有幾種簡單的方法可以解決此問題。

在本文中,我們將討論導致 429 Too Many Requests錯誤的原因及其外觀。然後,如果您遇到此特定問題,我們將介紹五種可以對您的網站進行故障排除的方法。

什麼是429錯誤碼?

HTTP 429 Error因其隨附的訊息而廣為人知,該訊息內容為:“請求過多”。根據您使用的瀏覽器,錯誤程式碼可能略有不同。它的一些最常見的變體包括:

  1. “429 error”
  2. “HTTP 429”
  3. “Error 429 (Too Many Requests)”

如您所見,“429”識別符號始終存在。簡而言之,此錯誤程式碼意味著兩件事之一。要麼您的Web伺服器被它收到的請求數量所淹沒,要麼它有一個設定來阻止來自特定IP地址的連線,如果它檢測到異常。

“異常”是指可疑行為,例如某個特定 IP 反覆嘗試訪問您網站的登入頁面。拒絕服務 (DDoS) 攻擊也可能觸發HTTP錯誤-429,因為安全伺服器很容易識別這種惡意行為。

準確瞭解什麼會觸發錯誤429很重要。如果您是多次嘗試訪問某個頁面的人,那麼錯誤應該很快就會自行消失。例如,您的Web主機可能設定了在發生可疑行為後的幾分鐘內限制訪問的設定。

另一方面,如果錯誤仍然存​​在,則可能表示惡意攻擊或第三方服務使您的伺服器不堪重負。在這種情況下,您可能需要捲起袖子自行修理。

什麼導致HTTP 429請求過多錯誤

在某些情況下,當您的伺服器檢測到使用者代理嘗試在短時間內過於頻繁地訪問特定頁面時,它會觸發速率限制功能。最常見的例子是使用者(或攻擊者)反覆嘗試登入您的站點。

但是,您的伺服器也可能使用 cookie 來識別使用者,而不是通過他們的登入憑據。請求也可以基於每個請求、跨您的伺服器或跨多個伺服器進行計數。因此,有多種情況可能會導致您看到以下錯誤之一:

  • 429 請求過多
  • 429 錯誤
  • HTTP 429
  • 錯誤 429(請求過多)

該錯誤還可能包括有關 429 狀態程式碼原因的其他詳細資訊,以及使用者在嘗試再次登入之前必須等待的時間。下面是一個示例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
HTTP/1.1 429 Too Many Requests
Content-type: text/html
Retry-After: 3600
HTTP/1.1 429 Too Many Requests Content-type: text/html Retry-After: 3600
HTTP/1.1 429 Too Many Requests
Content-type: text/html
Retry-After: 3600
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p>
</body>
</html>
<html> <head> <title>Too Many Requests</title> </head> <body> <h1>Too Many Requests</h1> <p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p> </body> </html>
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p>
</body>
</html>

不管錯誤如何出現,它總是意味著同樣的事情——有一個使用者或一段程式碼用太多的請求使你的伺服器不堪重負。有時,問題會自行消失。在其他情況下,例如由外掛問題或拒絕服務 (DDoS) 攻擊引起的情況,您需要主動解決錯誤。

問題是 429 錯誤最常影響您的登入頁面,這可能使您無法訪問網站的儀表板。這可能會使修復它有點棘手,但如果您知道要嘗試什麼,它仍然可以實現。

如何修復WordPress中的HTTP錯誤-429

在以下部分中,我們將探索修復HTTP 429 Error的四種最常見方法。我們將按照通常最有效的順序處理這些修復,首先是對您的外掛進行故障排除。

1. 更改WordPress登入 URL

暴力登入嘗試是WordPress網站上429 錯誤的主要原因之一。防止攻擊者試圖突破您的WordPress登入頁面的一種快速方法是更改其預設選項的URL,這樣他們就無法首先找到它。

預設情況下,您可以通過導航到yourwebsite.com/wp-admin來找到您的登入頁面。這很容易記住,但它也完全不安全,因為網路上的每個人都知道在哪裡訪問它。

更改預設WordPress URL的最簡單方法是使用免費的WPS Hide Login外掛:

 WPS Hide Login外掛

 WPS Hide Login外掛

讓我們來看看使用這個特定工具的過程。您首先要像其他任何外掛一樣安裝和啟用外掛,然後導航到WordPress儀表板中的設定>WPS Hide Login選項卡:

更改登入網址

更改登入網址

在這裡,您可以通過輸入您想使用的任何擴充套件程式輕鬆更改您的登入URL。確保遠離易於猜測的選項,例如loginwp-login等。這首先會違背更改URL的目的,因此您需要為您的站點設計一些獨特的內容。

請注意,此外掛還可讓您將嘗試訪問舊登入 URL 的使用者重定向到另一個頁面。例如,預設選項將向嘗試訪問/wp-admin的任何人顯示404錯誤頁面,因此他們會知道他們在錯誤的位置查詢。完成後,請記住儲存對設定的更改,這樣您就可以開始使用了。

如今,您沒有理由不為您的網站設定安全套接字層 (SSL) 證書。同樣,您的整個網站應該通過HTTPS載入。這比使用舊的HTTP協議安全得多,它甚至可以對您網站的搜尋引擎優化 (SEO)產生積極影響。

在強制使用 HTTPS 時,您可以使用手動路由(例如.htaccess重定向)或外掛。最受歡迎的選擇之一是Really Simple SSL

Really Simple SSL外掛

Really Simple SSL外掛

這個外掛的吸引力在於它只需點選幾下就可以強制您的整個網站通過HTTPS載入。但是,根據我們的經驗,它也可能導致偶爾出現錯誤。例如,在某些情況下,它會觸發我們一直在談論的429錯誤。

這個外掛本身沒有什麼問題,但它絕對不是實現HTTPS使用的最佳方式。問題是,即使您手動實施HTTPS,您仍然面臨如何處理內部連結的問題。您的網站上可能有很多內部連結,因此您需要找到一種方法,在禁用外掛後將它們全部替換為HTTPS版本。

首先,您需要處理外掛本身。如果您有權訪問WordPress管理後臺,禁用Really Simple SSL應該不是問題 – 只需點選停用即可

停用Really Simple SSL外掛

停用Really Simple SSL外掛

但是,由於429 Too Many Requests錯誤通常會阻止您訪問儀表盤,因此您可能必須採用手動方式並使用FTP客戶端禁用外掛。

無論哪種方式,一旦Really Simple SSL外掛消失,429錯誤就應該得到解決。這意味著您可以訪問儀表盤以設定新外掛,這將幫助您一次性替換所有內部連結。該外掛稱為Search and Replace

Search and Replace外掛

Search and Replace外掛

繼續並啟用外掛,然後導航到WordPress中的工具 > Search & Replace選項卡。在裡面,選擇wp_postmeta表,然後分別在Search for和Replace with欄位旁邊輸入以下引數:

如果您的站點使用非www域:

http://yourwebsiteurl.comhttps://yourwebsiteurl.com

在某些情況下,資料庫中也可能有您的域的www例項,因此我們還建議執行另一次搜尋並替換為以下設定。

http://www.yourwebsiteurl.comhttps://yourwebsiteurl.com

如果您的站點使用www域:

http://www.yourwebsiteurl.comhttps://www.yourwebsiteurl.com

要替換資料庫中域的非www例項,請執行另一個搜尋並替換為以下設定:

http://www.yourwebsiteurl.comhttps://yourwebsiteurl.com

然後選擇試執行選項,這會讓您知道外掛將在您的資料庫中替換多少個HTTP URL例項。在那次試執行之後,真正執行外掛,它將替換所有必要的連結。

請記住,禁用Really Simple SSL外掛後,您還需要使用.htaccess檔案設定站點範圍的HTTPS重定向。這將使您能夠有效地實施HTTPS,而不會出現進一步429錯誤的風險。

3. 禁用所有外掛

到目前為止,我們專注於可能導致 429 錯誤的單個外掛。但是,實際上,任何外掛如果發出過多的外部請求,都可能導致此問題。如果上述方法都無法解決您的情況,可能是時候嘗試一次禁用所有外掛,以確保它們不是問題。

通常,流氓外掛可能會導致持續的 429 錯誤。根據我們的經驗,最有可能觸發此類錯誤的外掛是:

  • 安全外掛
  • 強制您的網站通過HTTPS載入的解決方案
  • 以一種或另一種方式重寫WordPress URL的工具

確定外掛是否觸發HTTP錯誤 429的最快方法是禁用您站點上所有活動的外掛。如果之後錯誤仍然存​​在,那麼您可以嘗試不同的修復程式,如果它消失了,您可以開始縮小罪魁禍首的範圍。

禁用WordPress外掛很簡單。但是,錯誤429有時會阻止您訪問WordPress管理後臺。如果您遇到這種情況,暫時關閉外掛的最佳方法是使用檔案傳輸協議 (FTP)。

通過FTP連線到您的網站後,導航到wp-content 資料夾。在那裡你會看到一個名為plugins的資料夾。如果您將該資料夾重新命名為其他任何名稱,它將一舉禁用您網站上的每個外掛:

禁用WordPress外掛

當然,這樣做會影響您網站的功能。但是,您的主要目標應該是重新獲得訪問許可權,並檢視外掛是否觸發了錯誤。

如果下次訪問您的網站時 429 錯誤消失了,您可以假設您關閉的外掛之一是罪魁禍首。這意味著您需要縮小導致問題的原因。為此,您需要:

  1. 刪除你一分鐘前設定的空外掛目錄,並將之前的資料夾恢復到原來的名稱。
  2. 訪問外掛目錄。
  3. 將其中的一個外掛資料夾重新命名為其他任何內容,這將僅停用該特定外掛。
  4. 嘗試訪問您的網站,看看 429 錯誤是否消失。
  5. 如果錯誤仍然存​​在,請將該外掛資料夾恢復為其原始名稱,然後對下一個重複步驟 3 和 4。

通過一項一項地向下移動您的活動外掛列表,您最終應該會發現哪個是罪魁禍首。一旦確定了 429 Too Many Requests 錯誤背後的外掛,您可以將其完全刪除,這應該可以解決問題。

4. 切換到預設的WordPress主題

在某些情況下,您的活動WordPress主題可能會出現錯誤429。這很可能是使用API金鑰進行身份驗證的複雜主題。

再一次,我們假設您無權訪問您的WordPress儀表盤來處理這個潛在問題。然而,就像使用外掛一樣,您可以使用FTP客戶端來禁用您的活動主題。

該過程與我們在上一節中介紹的步驟大致相同:

  1. 通過FTP連線到您的WordPress網站。
  2. 導航到wp-content/themes
  3. 找到您的活動主題資料夾。
  4. 將該資料夾重新命名為其他任何名稱。

由於WordPress要求您的網站具有活動主題,因此它會自動切換到預設選項之一。如果您現在開啟您的網站並且錯誤消失了,那麼一切看起來都應該略有不同。

在此階段,您可以嘗試重新安裝主題或恢復其現有資料夾的先前名稱。如果錯誤仍然存​​在,那麼您可能需要恢復到主題的先前版本或考慮使用不同的.

5. 聯絡伺服器提供商

任何優質的伺服器支援服務都會感謝您在聯絡他們之前嘗試解決問題。當談到HTTP錯誤429時,如果您排除了外掛和主題,那麼您可以假設問題很可能是第三方對您網站的攻擊。

這裡有很多的,你可以用它來的措施保護你的WordPress網站。然而,其中大多數是先發制人的措施。如果您的網站目前“受到攻擊”,那麼您可能需要請求技術幫助。

即使您無法訪問您的網站,您的網路託管服務商的支援服務也應該能夠檢視其安全日誌,看看是否有問題。他們可能還能夠恢復您無權訪問的早期備份。

所以在這一點上,我們的建議是讓您的託管服務提供商知道您正在檢視什麼錯誤,以及您嘗試解決的問題。一旦錯誤429消失,您就可以採取措施保護您的網站,以免再次出現此問題。

小結

就錯誤而言,429錯誤並不難處理。在最壞的情況下,它可能會阻止您登入WordPress管理後臺,但您仍然可以採取一些簡單的步驟來嘗試解決該問題。

如果您遇到HTTP錯誤-429 並且它持續超過幾分鐘,這裡有四個快速修復可以幫助您將網站恢復正常:

  1. 更改您的預設WordPress登入URL。
  2. 禁用真正簡單的SSL 外掛。
  3. 暫時停用所有WordPress外掛。
  4. 切換到預設的WordPress主題。
  5. 如果您仍然無法解決錯誤,請聯絡您的主機。

注意,你的WordPress網站遭遇HTTP 429 Error,與你的網站連線WordPress網站返回的429 Too Many Requests完全是兩碼事。如果是您的網站在連線WordPress網站更新WordPress,又或者更新主題或外掛時,WordPress告知你429 Too Many Requests,則需要採取另外的解決方案:WordPress報錯“429 Too Many Requests”完美解決辦法

評論留言