haproxy nginx X-Forwarded-For的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy nginx X-Forwarded-For的值相关的知识,希望对你有一定的参考价值。

client(web 浏览器) ----> haproxy(acl backend)----> nginx (proxy_pass)----> java程序
地址如下:
1.1.1.1 2.2.2.2 3.3.3.3

默认正常的java程序看到的 X-Forwarded-For 为 1.1.1.1,2.2.2.2, 3.3.3.3

haproxy日志中看到的是 1.1.1.1
nginx日志中看到的是 1.1.1.1,2.2.2.2

如有一段nginx中的正常的生产日志:
"111.14.66.215, 21.32.2.206,21.32.2.206"

但是haproxy和nginx中都有一些参数可以改变这个现状

如: haproxy如果设置
#option forwardfor except 127.0.0.0/8

如果option forwardfor被注释掉了,haproxy将不会将自己的作为代理写入到x-forwarder-for中去。

如: nginx中如果设置
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如果 nginx中proxy_set_header被注释,nginx将不会将自己作为代理写入到x-forwarder-for中去。

注意:如果nginx设置了proxy_set_header ,real_ip_header {proxy_protocol|X-Forwarded-For}; 的每个不同值都会影响proxy_set_header的结果。

以上是关于haproxy nginx X-Forwarded-For的值的主要内容,如果未能解决你的问题,请参考以下文章

HAProxy 与 Nginx

haproxy+nginx的集群服务

HAproxy+Nginx

Haproxy+Nginx实现web负载均衡群集

Nginx,haproxy 配置

HAProxy vs Nginx