Tengo un problema con HAproxy.
Utilizo HAproxy como equilibrador de carga que distribuye las solicitudes HTTP entrantes a 5 servidores web. Normalmente, la solicitud de un cliente se reenvía a los servidores web con la IP del equilibrador de carga. Pero necesito IP de clientes o IP reales que soliciten algo de los servidores web. Porque necesitamos registrar las IP del cliente real.
Intento obtener las IP del cliente en los servidores web, pero no puedo tener éxito hasta ahora. Siempre veo la IP del equilibrador de carga.
Utilizo la opción x-forward-for pero no se resuelve el problema. Después de eso encontré otra opción " source 0.0.0.0:80 usesrc clientip " pero me equivoqué al intentar ejecutar HAproxy que trata sobre las necesidades de compilación con la opción USE_TPROXY del HAproxy. Lo hice, recompilo HAproxy con la opción USE_TPROXY pero no cambia nada. ¿Qué puedo hacer para conocer las IP reales del cliente?
Mi versión de kernel de Linux es 2.6.32-34 Quiero decir que el kernel es compatible con proxy transparente. y uso UBUNTU 10.4 LTS
mi archivo de configuración está aquí
global
maxconn 100000
uid 99
gid 99
daemon
defaults
option forwardfor except 127.0.0.1
mode http
(1)source 0.0.0.0:80 interface hdr_ip(x-forwarded-for,-1)
(2)source 0.0.0.0:80 usesrc clientip
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen myWeb 0.0.0.0:80
mode http
balance source
option forwardfor header X-Client
option http-server-close
stats enable
stats refresh 10s
stats hide-version
stats scope .
stats uri /lb?stats
stats realm LB2\ Statistics
stats auth admin:xXx
server S1 192.168.1.117:80 check inter 2000 fall 3
server S2 192.168.1.116:80 check inter 2000 fall 3
server S3 192.168.1.118:80 check inter 2000 fall 3
(1) (2) Mientras probaba HAproxy utilicé una de estas dos líneas.
¿Alguien me ayuda a conocer las IP reales de los clientes que solicitan nuestros servidores?