如何在Apache上运行Flask中的远程/客户端IP?我的web服务是负载均衡器的后面,因此request.remote_addr
给出了负载均衡器IP而不是客户端IP。
答案 0 :(得分:1)
您可以像这样获得远程客户端IP:
remote_ip = request.headers.get('X-Forwarded-For')
if not remote_ip:
remote_ip = request.remote_addr
替代方法:
remote_ip = request.environ.get('HTTP_X_FORWARDED_FOR')
if not remote_ip:
remote_ip = request.environ.get('REMOTE_ADDR')
答案 1 :(得分:0)
如果您的平衡器符合rf7239标准,则应发送Forwarded
标头,如果不是,则可能会发送X-Forwarded-For
。检查这些标头中的任何标头,而不是REMOTE_ADDR