Por favor, não esqueça que isso não funcionará para o proxy https, já que o haproxy não conseguirá manipular o conteúdo de uma sessão criptografada. Você também pode querer verificar o módulo mod_rpaf para o Apache, o que torna tudo isso mais fácil.
Eu uso HAProxy 1.3.26
no meu CentOS 5.8
para fazer proxy de todas as solicitações para um servidor dedicado. Eu uso o HAProxy apenas para proxy HTTP e HTTPS para um único servidor, então não há balanceamento de carga.
Meu haproxy.cfg
é bastante simples:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
option dontlognull
option httpclose
option forwardfor
clitimeout 60000
srvtimeout 60000
contimeout 5000
retries 3
option redispatch
listen http 192.168.0.1:80
mode tcp
option tcplog
maxconn 10000
server web01 192.0.1.13:80 maxconn 5000
listen https 192.168.0.1:443
mode tcp
maxconn 10000
server web01 192.0.1.13:443 maxconn 5000
onde:
192.168.0.1 - server where HAProxy is installed
192.0.1.13 - server to which HTTP requests are forwarded
Eu gostaria de ver os endereços IP dos clientes em meus Apache 2.2.3
logs de acesso. Essa opção geralmente é obtida adicionando o cabeçalho HTTP X-Forwarded-For
e, em seguida, lendo-o nos logs do servidor da web. Então, adicionei as seguintes linhas ao httpd.conf:
LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_forwarded
SetEnvIfNoCase X-Forwarded-For "." from_proxy=1
CustomLog logs/access_log combined env=!from_proxy
CustomLog logs/access_log combined_forwarded env=from_proxy
O problema é que o único endereço IP registrado é 192.168.0.1
(servidor HAProxy). Eu tentei configurações diferentes, leia documentação, pesquisei no Google, mas ainda não consigo entender porque os IPs dos clientes não estão conectados.
Eu sinto que estou sentindo falta de algo simples, pois as configurações são bem diretas. Por favor, ajude a corrigir as configurações, se possível.
Obrigado por qualquer ajuda.
Por favor, não esqueça que isso não funcionará para o proxy https, já que o haproxy não conseguirá manipular o conteúdo de uma sessão criptografada. Você também pode querer verificar o módulo mod_rpaf para o Apache, o que torna tudo isso mais fácil.
Tags haproxy