我们使用许多以 NGinx 为前端的应用程序服务器。我们现在希望限制代理对某些应用程序的访问,但仍然允许在同一主机和内部 LAN 上运行的脚本绕过新的身份验证。
为此,我们在配置中添加了以下内容:
satisfy any;
allow 192.168.32.0/24;
allow 192.168.29.29;
allow 127.0.0.1;
deny all;
proxy_pass http://127.0.0.1...
但是,这允许所有请求进入——大概是因为代理是针对 127.0.0.1 完成的,因此所有请求都符合上述“允许 127.0.0.1”规则。
我们做错了什么?什么是正确的方法?
好的,我们找到了原因,NGinx 是无辜的。最近引入了一个(看似)不相关的设置更改,将 HTTP 重定向到 HTTPS。在我们的设置中——出于难以解释的原因——SSL 连接被同一台机器上运行的 HAProxy 终止。
因此,所有HTTP 连接首先被重定向到 HTTPS,然后 SSL 连接都显示(对 NGinx)来自 127.0.0.1。对噪音感到抱歉,并感谢所有试图提供帮助的人。