我目前有一个应用程序,我想让每个人都来自两个特定的IP地址,并通过来自另一个IP的用户的同一个URL来保护同一个应用程序。
例如,我允许用户有190.190.190.110和190.190.190.112 。 而对于其他人,我希望Nginx引用一个htpassword文件。
有谁知道如何做到这一点?
编辑:快速
尝试这个:
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; }
这是未经testing..但是这样的事情可能会在你的服务器块
server { if ($remote_addr !~* "190.190.190.[110|112]") { auth_basic "Restricted"; auth_basic_user_file /path/to/htpasswd.file; } }
我的正则expression式可能是错误的,但这是如何做到的。
我不认为你可以直接限制基于IP的basic-auth,但你可以强制redirect到一个单独的站点(即新的服务器块)。
看一下这个:
根据IP地址/子网使用Nginx来服务不同的页面
(我需要自己运行和实现…)