2

找不到解决方案如何解决这个问题。 是我阻止访问该国家/地区的方式,同时我需要访问来自被阻止国家/地区的特定 IP。

4

2 回答 2

8

终于找到了解决这个问题的办法。

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;
}

主要思想来自这里

于 2013-06-21T13:26:42.690 回答
3

在 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;
}
于 2016-06-28T11:05:01.733 回答