我目前有一个应用程序,希望来自 2 个特定 IP 地址的每个人都可以访问它,并通过相同的 URL 保护同一个应用程序,以防止来自另一个 IP 的用户访问。
例如,我允许用户拥有190.190.190.110
和190.190.190.112
。而对于其他人,我希望 Nginx 引用 htpassword 文件。
有人知道怎么做吗?
編輯:快速上升
答案1
尝试这个:
location / {
satisfy any;
allow 82.242.75.92;
allow 82.242.75.98;
deny all;
auth_basic "Restricted";
auth_basic_user_file /home/password_manager/passwords;
}
答案2
这尚未测试过..但类似这样的操作可能在你的服务器块中起作用
server {
if ($remote_addr !~* "190.190.190.[110|112]") {
auth_basic "Restricted";
auth_basic_user_file /path/to/htpasswd.file;
}
}
我的正则表达式可能是错误的,但这就是操作方法的要点。
答案3
我认为您不能直接根据 IP 来限制基本身份验证,但您可以强制重定向到单独的站点(即新的服务器块)。
看一下这个:
(我需要自己运行并实现这个......)