如何授予对 nGinx 中 GeoIP [国家] 阻止的特定 IP 地址的访问权限?
Posted
技术标签:
【中文标题】如何授予对 nGinx 中 GeoIP [国家] 阻止的特定 IP 地址的访问权限?【英文标题】:How to grant access to a specific IP address that is blocked by GeoIP[country] in nGinx? 【发布时间】:2013-06-20 20:39:44 【问题描述】:找不到解决方法。 Here 是我阻止访问该国家/地区的方式,同时我需要访问来自被阻止国家/地区的特定 IP。
【问题讨论】:
【参考方案1】:终于找到了解决这个问题的办法。
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
【讨论】:
【参考方案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;
【讨论】:
以上是关于如何授予对 nGinx 中 GeoIP [国家] 阻止的特定 IP 地址的访问权限?的主要内容,如果未能解决你的问题,请参考以下文章