在 Apache 上,我们有一个设置,我们可以对所有开发分支进行 http 身份验证,除非主机名与我们的白名单匹配,或者访问者的 IP 与我们的白名单匹配。
这就是我们所拥有的:
SetEnvIf Host master.oursite.co GrantAccess
SetEnvIf Host 1429-new-checkout.oursite.co GrantAccess
allow from 213.141.134.200
allow from 46.159.236.22
我如何才能在 NginX 上实现这一点,使得每次我想要添加/删除访问权限时都只需要最少的配置。
答案1
我们有本地和远程开发人员,以及需要向客户展示的公共网站。这就是我使用的。
在你的 vhost 配置中包含一个名为 auth.conf 的文件
#auth check - satisfy if ip or key match
satisfy any;
allow 95.139.104.184/29;
allow 95.55.120.28/32;
deny all;
#auth file
auth_basic "closed site";
auth_basic_user_file /etc/nginx/htpasswd;
确保创建 /etc/nginx/htpasswd 文件
sudo htpasswd -c /etc/nginx/htpasswd exampleuser
对于基于主机名的匹配,您可以使用第三方模块,例如描述在这里使用这个域名解析
rdns_allow developers\.example\.com;