NginX 根据 IP 和主机名列入白名单。否则 HTTP 身份验证

NginX 根据 IP 和主机名列入白名单。否则 HTTP 身份验证

在 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;

相关内容