我想为同样位于亚马逊 ELB 后面的 nginx 代理的域正确设置 X-Real-IP。
IE
AMAZON ELB <=> NGINX PROXY <=> REST APP1
<=> REST APP2
到目前为止,我发现以下内容可以正常工作并防止欺骗 IP。我在 nginx.conf 中全局设置了这个
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
但是,我也有一些位于 NGINX 后面的 REST 应用程序
如果设置或 x-forwarded-for,我的其余应用程序将使用 x-real-ip。正常使用下,真实客户端IP是正确的。
在设置了 x-real-ip 和 x-forwarded-for 标头中的一个或两个的欺骗性 IP 攻击下,我在 REST 客户端中看到了欺骗性 IP。但是,nginx 显示了正确的客户端 IP。
目前在我设置的域名主机中
proxy_pass_request_headers 开启;
如何将 x-real-ip 设置为 REST 应用程序的真实可信 IP?
我想我需要一条proxy_set_header
X-Real-IP 线路。但是如何引用 real-ip 模块设置的 real-ip 标头?
我找到了答案。
我一直在尝试设置我在网上找到的以下指令。但它似乎没有用。
经过一番折腾,我想我会尝试将它们放在一个位置块中。我曾尝试将它们放在 html 部分和服务器部分。但是,如果您将上面的内容放在下面的位置块中,它将起作用。例如