'GeoIP' 标签

Nginx 结合 GeoIP 来减少WordPress的垃圾评论

这个方法的效果还是比较理想的。新版的Nginx 一般默认支持GeoIP了,否则须编译支持之。

检查是否支持GeoIP

执行 nginx -V

输出的结果如果看到有“http_geoip_module” 则表示Nginx 已支持 GeoIP

接下来执行

wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mv GeoIP.dat /usr/share/GeoIP/

这样一来就可以用上最新的IP数据库

执行 vi /etc/nginx/nginx.conf
在http{}模块里加入
geoip_country /usr/share/GeoIP/GeoIP.dat;

然后到站点配置文件中加入下面的规则

set $cc "";
if ($request_uri = /wp-comments-post.php) {
        set $cc $geoip_country_code;
}
if ($cc ~ (CN|KR|RU|UA)) {
        return 444;
}

(CN|KR|RU|UA)) 这里可以根据实际需要屏蔽那些国家的IP

检查修改是否被正确修改
执行 nginx -t 或 service nginx configtest 或者 /etc/init.d/nginx configtest

检查无误,然后重启Nginx
nginx -s reload 或 service nginx reload 或 /etc/init.d/nginx reload