我想限制外部 IP 对 ngnix 位置的访问。我将以下配置添加到 ngnix 配置文件,但我不确定这样做是否正确。有没有更好的替代方法来限制外部 IP 访问某个位置?
map $proxy_add_x_forwarded_for $remote_ip {
default $proxy_add_x_forwarded_for;
"" $http_x_real_ip;
}
map $remote_ip $isinternal {
~^127\. 1;
~^10\. 1;
~(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.) 1;
~^192\.168\. 1;
default 0;
}
...
location /app/sniper {
if ($isinternal != 1) { return 403; }
...
}
提前致谢...
答案1
你应该使用 nginx地理IP 地址映射模块。您的配置将如下所示:
geo $internal {
default 0;
127.0.0.0/8 1;
10.0.0.0/8 1;
172.16.0.0/20 1;
192.168.0.0/24 1;
}
location /app/sniper {
if ($internal != 1) {
return 403;
}
}