我们的应用程序中存在一个问题,在以下设置中客户端 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