Ho un problema con HAproxy.
Uso HAproxy come bilanciamento del carico che distribuisce le richieste HTTP in entrata a 5 server Web. normalmente una richiesta del client viene inoltrata ai server Web con l'IP del loadbalancer. Ma ho bisogno di IP client o IP reali che richiedono qualcosa dai server Web. Perché dobbiamo registrare gli IP del client reale.
Cerco di ottenere gli IP dei client sui server Web, ma finora non riesco. Vedo sempre l'IP del bilanciamento del carico.
Uso l'opzione x-forward-for ma non è stato risolto il problema. Dopodiché ho trovato un'altra opzione " source 0.0.0.0:80 utilizzarc clientip " ma ho avuto un errore durante il tentativo di eseguire HAproxy che riguarda le esigenze di compilazione con l'opzione USE_TPROXY del programma HAproxy. L'ho fatto, ho ricompilato HAproxy con l'opzione USE_TPROXY ma non ho cambiato nulla. cosa posso fare per apprendere gli IP reali del cliente.
La mia versione del kernel linux è 2.6.32-34 Voglio dire che il kernel supporta proxy trasparente. e utilizzo UBUNTU 10.4 LTS
il mio file di configurazione è qui
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) Durante il test di HAproxy ho usato una di queste due righe.
Qualcuno mi aiuta a conoscere gli IP reali dei client che vengono richiesti dai nostri server?