Por que o HAProxy não está adicionando “X-Forwarded-For”?

2

Eu segui inúmeras referências on-line, o que me diz que eu deveria ser capaz de criar um front-end como:

frontend http_https
  bind 1.2.3.4:443 ssl crt /etc/haproxy/tls/mycert.pem
  bind 1.2.3.4:80
  mode http
  option httplog
  option forwardfor
  option http-server-close
  redirect scheme https code 301 if !{ ssl_fc }
  http-request set-header X-Forwarded-Port %[dst_port]
  http-request add-header X-Forwarded-Proto https if { ssl_fc }
  http-request set-header X-Request-Start t=%Ts%ms
  http-response set-header Strict-Transport-Security max-age=15768000
  use_backend %[req.hdr(host),lower,map(/etc/haproxy/domains-to-backends.map)]

Quando obtenho um tcpdump no meu servidor de back-end, vejo todos os cabeçalhos add-header e set-header , mas não vejo nenhum cabeçalho X-Forwarded-For .

Se eu adicionar algo como:

  http-request add-header X-Client-IP %[src]

Eu vejo esse cabeçalho sendo transmitido com o IP do cliente correto.

Alguém pode oferecer alguma ideia de por que isso pode não estar funcionando? Ou qualquer motivo, eu não deveria usar apenas http-request set-header X-Forwarded-For %[src] em vez de option forwardfor ?

Uma seção de back-end de amostra:

backend bk_foo
  balance roundrobin
  errorfile 502 /etc/haproxy/errorfiles/502.http
  errorfile 503 /etc/haproxy/errorfiles/503.http
  errorfile 504 /etc/haproxy/errorfiles/504.http
  option httpchk
  server foo.example.com 10.1.2.3:8080 check
    
por pioto 12.09.2016 / 22:01

1 resposta

2

edit: você deve colocar option forwardfor na seção de back-end. Não está na seção frontend.

Eu não acho que há algo errado com a configuração do HAProxy. Eu fiz muitas configurações com opção forwardfor sem qualquer problema. Alguma chance de haver um dispositivo instalado entre o HAProxy e o servidor de back-end que possa estar removendo determinados cabeçalhos? Também gostaria de sugerir para testar com uma configuração simples com foco neste cabeçalho para garantir que outras configurações não causem o problema.

    
por 25.09.2016 / 02:34

Tags