![将客户端 IP 从 AWS ELB 传递到 HA 代理](https://linux22.com/image/706013/%E5%B0%86%E5%AE%A2%E6%88%B7%E7%AB%AF%20IP%20%E4%BB%8E%20AWS%20ELB%20%E4%BC%A0%E9%80%92%E5%88%B0%20HA%20%E4%BB%A3%E7%90%86.png)
我们的应用程序中存在一个问题,在以下设置中客户端 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