haproxy不在HTTP POST上传递X_FORWARD_FOR

我已经安装了HAProxy

option forwardfor 

选项,所以它会通过$ _SERVER [“HTTP_X_FORWARDED_FOR”]将用户的IP传递给PHP

如果页面请求不是一个POST它填充很好,但如果是的话,它将不会被填充。 任何想法,我已经出错了?

感谢大家!

我的整个HAProxy conf文件供参考:

 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy user haproxy group haproxy daemon #debug #quiet defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 4096 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen webfarm :80 mode http balance roundrobin option forwardfor server webA 192.168.240.4 weight 1 maxconn 2048 check server webB 192.168.240.3 weight 1 maxconn 2048 check listen smtp :25 mode tcp option tcplog balance roundrobin server smtp 192.168.240.4:25 check 

从HAProxy手册:

需要注意的是,只要HAProxy不支持保持连接,只有连接的第一个请求才会收到头文件。 出于这个原因,使用此选项时确保设置“选项httpclose”是很重要的。

例如:#公共HTTP地址也被stunnel使用在同一台机器上前端www模式http选项forwardfor除了127.0.0.1#stunnel已经添加了header

 # Those servers want the IP Address in X-Client backend www mode http option forwardfor header X-Client 

另见:“选项httpclose”

所以你可以尝试httpclose选项,但是我会在几个小时之后尝试,或者在性能损失的情况下进行testing?