J'ai un problème avec HAproxy.
J'utilise HAproxy comme équilibreur de charge qui distribue les requêtes http entrantes à 5 serveurs Web. normalement, une demande client est transmise à des serveurs Web avec l'IP de Loadbalancer. Mais j'ai besoin d'adresses IP de clients ou de vraies adresses IP qui demandent quelque chose aux serveurs Web. Parce que nous devons enregistrer les adresses IP du client réel.
J'essaie d'obtenir les adresses IP des clients sur les serveurs Web mais je ne peux pas réussir jusqu'à présent. Je vois toujours l'IP de l'équilibreur de charge.
J'utilise l'option x-forward-for mais le problème n'est pas résolu. Après cela, j'ai trouvé une autre option " source 0.0.0.0:80 usesrc clientip " mais j'ai eu eror en essayant d'exécuter HAproxy qui concerne les besoins de compilation avec l'option USE_TPROXY du HAproxy. Je l'ai fait, je recompile HAproxy avec l'option USE_TPROXY mais ne change rien. que puis-je faire pour apprendre les adresses IP des clients réels.
Ma version du noyau Linux est 2.6.32-34 Je veux dire que le noyau prend en charge un proxy transparent. et j'utilise UBUNTU 10.4 LTS
mon fichier de configuration est ici
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) Lors du test de HAproxy, j'ai utilisé l'une de ces deux lignes.
Est-ce que quelqu'un m'aide à apprendre les vraies IP des clients qui sont demandés à nos serveurs?