有没有一种方法可以根据请求的来源要求基本身份验证,按国家/地区过滤?我的目标是始终能够要求基本身份验证,除非请求来自X、Y或Z国家。
发布于 2019-09-25 15:28:47
这个答案是在假设你已经安装了这个模块并正常工作的前提下进行的,有很多很好的指南可以安装它,所以我将跳过它。
您可以使用以下命令映射geoIP:
geoip_country /path/to/GeoIP/GeoIP.dat;
map $geoip_country_code $not_auth_required {
default no;
ZZ yes;
YY yes;
XX yes;
}
然后为每个人设置一个基本身份验证,除了那些:
server {
listen 80;
root /foo/bar/baz;
auth_basic “Wrong Country";
auth_basic_user_file /etc/nginx/.htpasswd; #typical user:$hash auth.
if ($not_auth_require = yes) {
auth_basic off;
}
location / {
#do things
}
}
从理论上讲,这个逻辑应该可以做到这一点,因为您需要一个白名单,而不是黑名单。我希望我能帮上忙
https://stackoverflow.com/questions/58101484
复制相似问题