找不到解决方案如何解决这个问题。 Here是我阻止访问该国家的方式,同时我需要访问来自被阻止国家/地区的特定IP。
答案 0 :(得分:7)
终于找到了解决这个问题的方法。
1)在nginx.conf中添加
http {
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default no;
LV yes; # in my case it is Latvia (allowed country, but all other are not)
}
geo $exclusions {
default 0;
123.123.123.123 1; # here comes allowed IP that is in blocked country list
}
}
2)在您的vhost配置服务器{}容器
中if ($allowed_country = yes) {
set $exclusions 1;
}
if ($exclusions = "0") {
return 403;
}
主要观点来自HERE
答案 1 :(得分:2)
在http块中
geoip_country /usr/local/share/GeoIP/GeoIP.dat;
map "$geoip_country_code:$remote_addr" $allowed_country {
default yes;
"~..:10.11.12.13" yes;
"~..:11.12.13.14" no;
"~TR:.*" no;
}
在服务器块中
if ($allowed_country = no) {
return 403;
}