使用 nginx:从公网 IP 请求时需要认证,本地 IP 请求时不需要认证

使用 nginx:从公网 IP 请求时需要认证,本地 IP 请求时不需要认证

我编写了一个简单的文件浏览器应用程序,该应用程序使用端口 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;

相关内容