中间有负载均衡器时如何跟踪浏览器的IP
How to track IP of the browser when there is a load balancer in the middle
在我的 python 应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪请求来源的 IP made.Normally,我可以通过此调用获取该信息:
request.headers.get('Remote-Addr')
但是,当我在像 HaProxy 这样的负载均衡器后面部署应用程序时,给定的 IP 是负载均衡器的 IP,而不是浏览器的 IP。
当我的服务器位于负载平衡器后面时,如何获取浏览器的 IP?
我的案例的另一个问题是我使用的是通过 HAProxy 从浏览器到我的服务器的 TCP 连接,而不是使用 http。
我在使用 AWS ELB 和 Apache 时遇到了这个问题。解决方案是 mod_rpaf,它读取 X-Forwarded-For header 并将其替换为标准 ip header.
您应该检查 haproxy 是否正在设置 X-Forwarded-For header(其中包含真实的客户端 IP)。您可以使用 modrpaf 或其他技术来读取真实 IP。
在我的 python 应用程序中,浏览器向我的服务器发送请求以获取某些信息。我需要跟踪请求来源的 IP made.Normally,我可以通过此调用获取该信息:
request.headers.get('Remote-Addr')
但是,当我在像 HaProxy 这样的负载均衡器后面部署应用程序时,给定的 IP 是负载均衡器的 IP,而不是浏览器的 IP。
当我的服务器位于负载平衡器后面时,如何获取浏览器的 IP?
我的案例的另一个问题是我使用的是通过 HAProxy 从浏览器到我的服务器的 TCP 连接,而不是使用 http。
我在使用 AWS ELB 和 Apache 时遇到了这个问题。解决方案是 mod_rpaf,它读取 X-Forwarded-For header 并将其替换为标准 ip header.
您应该检查 haproxy 是否正在设置 X-Forwarded-For header(其中包含真实的客户端 IP)。您可以使用 modrpaf 或其他技术来读取真实 IP。