haproxy não está passando X_FORWARD_FOR no HTTP POST

2

Eu configurei o HAProxy com o

option forwardfor
Opção

para que ele passe o IP do usuário para o PHP via $ _SERVER ["HTTP_X_FORWARDED_FOR"].

Se a solicitação de página não for um POST, ela será preenchida, mas se estiver, ela não será preenchida. Alguma idéia de onde eu errei?

Obrigado a todos!

Meu arquivo conf HAProxy completo para referência:

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
    
por Mark L 25.05.2010 / 14:56

1 resposta

3

Do manual HAProxy:

It is important to note that as long as HAProxy does not support keep-alive connections, only the first request of a connection will receive the header. For this reason, it is important to ensure that "option httpclose" is set when using this option.

Examples : # Public HTTP address also used by stunnel on the same machine frontend www mode http option forwardfor except 127.0.0.1 # stunnel already adds the header

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

See also : "option httpclose"

Então você pode tentar a opção httpclose, mas eu tentaria depois de horas ou em teste no caso de uma penalidade de desempenho?

    
por 25.05.2010 / 15:07

Tags