【发布时间】:2019-05-16 11:41:03
【问题描述】:
我正在尝试仅允许特定 IP 地址访问我网站的特定位置。
我有两台服务器:带有 nginx 的负载均衡器和带有 nginx 的应用服务器。 我正在尝试根据客户端的 IP 地址允许对某个位置的请求。 为了调试,我向应用程序添加了标头日志记录,这就是我在那里看到的(即我猜反向代理正确地传输了真实的客户端 IP 地址):
"REMOTE_ADDR": "load.balancer.ip.address",
"HTTP_X_REAL_IP": "real.client.ip.address",
所以我在 nginx 中添加了 location 指令如下:
location /upload {
allow real.client.ip.address;
deny all;
alias /path/to/upload/folder;
}
现在,当我尝试在浏览器中访问位置 /upload/something 时,我看到 nginx 的错误 403。
但是当我删除deny all 指令或将real.client.ip.address 更改为load.balancer.ip.address 时,我能够成功访问该位置。
当 nginx 决定为allow 或deny 时,如何强制 nginx 检查不同标头中的客户端 IP 地址?
【问题讨论】:
标签: nginx