我想知道是否可以根据ISP阻止请求?如果是,那我怎么能实现呢?我知道如果我知道ISP分配给的IP地址范围,我可以阻止请求。有没有办法知道这些IP地址?
答案 0 :(得分:0)
您可以使用内置的geoip模块实现这一目标。
nginx -V
寻找--with-http_geoip_module
然后您将获得一个数据库并将其解压缩到/etc/nginx
:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
现在将以下内容添加到nginx.conf
:
geoip_country /etc/nginx/GeoIP.dat;
map $geoip_country_code $allowed_country {
default yes;
CN no;
}
这个例子允许任何人,但不允许中国。现在在适当的位置激活它:
if ($allowed_country = no) {
return 443;
}
现在这也适用于isp,你只需要获得合适的数据库。