将客户端 IP 从 AWS ELB 传递到 HA 代理

将客户端 IP 从 AWS ELB 传递到 HA 代理

我们的应用程序中存在一个问题,在以下设置中客户端 IP 没有传递到应用服务器。

用户---------> AWS ELB -----------> HAPROXY -----------> 应用程序服务器(apache)

我们的 ELB 使用 TCP 侦听器,并且我们已启用代理协议标头。在 HA 代理中,我们在 haproxy.cfg 中添加了“option forwardfor”

我们能够通过“x-forwarded-for”标头获取 http 请求的客户端 IP,但不能获取 https 请求的客户端 IP。

非常感谢任何帮助我们确定我们的设置中缺少什么部分。

谢谢

答案1

Amazon ELB 在用作 TCP 侦听器时会重置 TCP 参数。您可以在 ELB 上启用代理协议以保留以下参数:

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-proxy-protocol.html

完成后,你可以修改haproxy来了解代理协议: https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#5.2-send-proxy

相关内容