我编写了一个简单的文件浏览器应用程序,该应用程序使用端口 3000 上的节点提供服务。我使用 nginx 作为代理此服务的前端。它在我的家庭服务器上。
我希望当我通过我的公共 IP 访问时能够要求进行基本 HTTP 身份验证,但当我在家时则不需要。我有以下配置:
location /files {
satisfy any;
allow 10.1.0.0/24;
deny all;
auth_basic "Authentication Required";
auth_basic_user_file /etc/access_list;
proxy_pass http://127.0.0.1:3000/;
}
但是,这不起作用。当我在同一子网上的家庭网络上时,它仍然要求我进行基本的 HTTP 身份验证。我原以为“允许 > 拒绝 > 身份验证”与“满足任何”配对的顺序是正确的。我在这里做错了什么吗?这可能吗?
答案1
上述配置有拼写错误。连接来自 10.1.1.157,但配置文件只允许来自 10.1.0.0/24。
修复很简单:将有问题的行更改为以下内容:
allow 10.1.1.0/24;