这段时间(实际上已经持续了好长一段时间)只要服务器在中国的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时,又或者是更新主题及插件更新时,可以通过翻墙到wordpress.org,下载WordPress安装包、WordPress主题及插件,再手动上传到服务器执行更新。
方案2:使用第三方WordPress最新版本镜像
将以下PHP代码添加到WordPress安装文件的function.php,使用第三方镜像文件来实现WordPress版本更新。
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;
});
<?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主题、插件。
Kill 429免费插件下载地址:点击下载
注:目前插件不算太完美,有时候点击安装或者更新时,也会超时,但可以尝试再安装及更新,就能够成功了。
via naibabiji.com