WordPress报错“429 Too Many Requests”完美解决办法
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,我亲测了,可以用。
元·刘因《村居杂诗》
芳芬皆可籍,缓步即吾车[jū];
乘兴三杯酒,随行一策书[xū]。
——智慧人生,始自田园美景。 (一策书(湘岳阳万江波))。
蒲公《咏史》
良马非不骏,盐坂徒悲鸣。
美玉非不贵,抱璞为世轻。
高士卧隆中,畴乃知其名?
从容起南阳,谈笑魏吴惊。
男儿事蚕桑,后世有何称?
——智慧世界,源自码农寒士。(一策书(湘岳阳万江波))。