2019年年底只要是部署在中國境內的服務器的WordPress網站,后台執行WordPress版本更新,或者WordPress主題、WordPress插件更新時,就會提示429 Too Many Requests,原因暫不明確。WordPress 429報錯狀態碼到目前為止依然存在,不少站長對這種情況無可奈可,又或者只能先通過其他途徑先下載WordPress安裝包、主題及插件壓縮包,再上傳到服務器安裝。
這段時間(實際上已經持續了好長一段時間)只要服務器在中國的WordPress站長應該都會有一件煩心的事情,每當要升級WordPress版本,又或者升級WordPress平台的主題或者插件,都會受到“429 Too Many Requests”報錯提示。
“429 Too Many Requests”原因
有些WordPress站長,遇到429報錯可能第一時間的反應是,可能WordPress安裝包,WordPress主題或者插件文件出現了問題。其實是有可能的,但這一次,並不是。而只是國內無法訪問wordpress.org的服務器而已。
那么是不是國內牆掉了wordpress.org呢,小編是ping了下wordpress.org,發現國內還是正常的訪問wordpress.org的IP地址,只是不太穩定而已。如下圖所示:
既然wordpress.org並沒有被牆,小編繼續翻閱資料,看能否找到一些蛛絲馬跡。終於在wordpress.org論壇找到:《Is wordpress.org restricting visits from China region?》
大概的意思就是:
(1)WordPress並沒有地域限制。中國區域出現429報錯,不是WordPress特別限制導致。
(2)WordPress論壇人員回復稱,最近很可能是來自該IP地址的太多請求,因此您達到了ratelimit。
(3)中國提問者提出質疑,“我知道ngx_http_limit_req_module是有用的用於限制速率的nginx模塊,但是很難相信中國的大部分地區都受到限制。IP地理位置數據庫看起來很像地理阻止,它返回HTTP 429而不是HTTP 403。”
因此,為什么WordPress在更新版本,或者升級主題及插件時,訪問wordpress.org網站,均會報429錯誤?就留由大家去猜測了。
如何解決“429 Too Many Requests”
方案1:手動下載上傳文件更新
就是當你需要更新到最新版本的WordPress時,又或者是更新主題及插件更新時,可以通過FQ到wordpress.org,下載WordPress安裝包、WordPress主題及插件,再手動上傳到服務器執行更新。
方案2:使用第三方WordPress最新版本鏡像
將以下PHP代碼添加到WordPress安裝文件的function.php,使用第三方鏡像文件來實現WordPress版本更新。
- <?php
- add_filter('site_transient_update_core', function($value){
- foreach ($value->updates as &$update) {
- if($update->locale == 'zh_CN'){
- $update->download = 'http://www.xintheme.cn/download/wordpress-zh_CN.zip';
- $update->packages->full = 'http://www.xintheme.cn/download/wordpress-zh_CN.zip';
- }
- }
- return $value;
- });
方案3:完美解決方案-安裝Kill 429插件
上述兩種方案,方案1過於麻煩,流程相對比較復雜;方案2僅限於更新WordPress版本,無法更新WordPress主題及插件。
我們更建議使用第3種方案,只需要安裝並啟用Kill 429插件,即可實現直接升級WordPress版本,及更新WordPress主題、插件。
方案3,我親測了,可以用。