nginx 如何将前端 ip 地址传递到后端服务器(不要混淆将用户 ip 地址传递到后端)

nginx 如何将前端 ip 地址传递到后端服务器(不要混淆将用户 ip 地址传递到后端)

我有服务器前端服务器:Apple 和后端服务器 Orange

为了在第一行中明确说明,我不想将用户 IP 地址通过 Apple 传递到 Orange,因为我已经通过使用

proxy_set_header X-Real-IP $remote_addr;

我的问题是我想将前端服务器 IP 地址传递到后端服务器,因为我们有太多前端服务器,所以我会知道从哪个前端服务器发送。有什么想法或例子吗?我不能使用 REMOTE_ADDR,因为它是通过用户 IP 地址传递的。

谢谢。

答案1

我不知道有什么自动方法可以做到这一点。您可以使用proxy_set_header frontend_ip <ipaddress>

可以<ipaddress>手动添加到配置中,也可以在生成配置时由配置管理系统添加。

然后您可以在后端对标题值执行任何操作。


问题澄清之前的旧答案

您的后端 Web 服务器可能已配置为用标头中的地址替换连接主机 IP 地址X-Real-IP

您需要修改后端服务器配置,以便它们不使用X-Real-IP

例如,在 nginx 中,从配置中删除real_ip_headerset_real_ip_from行。

还要确保您的后端应用程序没有使用REMOTE_ADDR实际的标题。

答案2

我找到了解决方案,您只需要在后端服务器上使用 HTTP_X_FORWARDED_FROM,然后您就可以使用它来查看前端 IP 地址。完美运行。

相关内容