Python 如何在中间有负载均衡器时跟踪浏览器的IP

Python 如何在中间有负载均衡器时跟踪浏览器的IP,python,ip,haproxy,Python,Ip,Haproxy,在我的python应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪发出请求的源的IP。通常,我可以通过此调用获取该信息: request.headers.get('Remote-Addr') 但是,当我在HaProxy这样的负载平衡器后面部署应用程序时,给定的IP是负载平衡器的IP,而不是浏览器的IP 当我的服务器位于负载平衡器后面时,如何在服务器上获取浏览器的IP 我的案例中的另一个问题是,我通过HAProxy使用从浏览器到服务器的TCP连接,而不是使用http。我在AWS E

在我的python应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪发出请求的源的IP。通常,我可以通过此调用获取该信息:

request.headers.get('Remote-Addr')

但是,当我在HaProxy这样的负载平衡器后面部署应用程序时,给定的IP是负载平衡器的IP,而不是浏览器的IP

当我的服务器位于负载平衡器后面时,如何在服务器上获取浏览器的IP


我的案例中的另一个问题是,我通过HAProxy使用从浏览器到服务器的TCP连接,而不是使用http。

我在AWS ELB和Apache中遇到了这个问题。解决方案是mod_rpaf,它读取X-Forwarded-For报头并将其替换为标准ip报头


您应该检查haproxy是否正在设置X-Forwarded-For头(其中包含真实的客户端IP)。您可以使用modrpaf或其他技术来读取真正的IP

谢谢,但我怀疑这是否适用于TCP连接,而不是用于将请求从浏览器转发到CPortalTrue的http,Modpaf适用于Apache,但您应该尝试“request.headers.get('X-Forwarded-for')”。或者配置haproxy以通过原始客户端IP。