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

我们的应用程序中存在一个问题,即客户端IP未通过以下设置传递给应用服务器。

USER ———> AWS ELB ———–> HAPROXY ———–>应用程序服务器(apache)

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

我们可以通过“x-forwarded-for”标题获取http请求的客户端IP,但不能用于https。

感谢帮助确定我们设置中缺less的部分。

谢谢

用作TCP侦听器时,Amazon ELB重置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