У меня проблема с HAproxy.
Я использую HAproxy в качестве балансировщика нагрузки, который распределяет входящие http-запросы на 5 веб-серверов. обычно клиентские запросы направляются на веб-серверы с IP-адресом loadbalancer. Но мне нужны клиентские IP-адреса или реальные IP-адреса, которые запрашивают что-то с веб-серверов. Потому что нам нужно регистрировать IP-адреса реальных клиентов.
Я пытаюсь получить IP-адреса клиентов на веб-серверах, но до сих пор не могу добиться успеха. Всегда вижу IP балансировщика нагрузки.
Я использую опцию x-forward-for, но проблема не решена. После этого я нашел другую опцию « source 0.0.0.0:80 использует rc clientip », но у меня возникла ошибка при попытке запустить HAproxy, что касается компиляции с опцией USE_TPROXY опции HAproxy. Я сделал это, я перекомпилирую HAproxy с опцией USE_TPROXY, но ничего не меняет. что я могу сделать, чтобы узнать реальные IP-адреса клиента.
Моя версия ядра Linux - 2.6.32-34. Я имею в виду, что ядро поддерживает прозрачный прокси. и я использую UBUNTU 10.4 LTS
мой конфигурационный файл здесь
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) При тестировании HAproxy я использовал одну из этих двух строк.
Кто-нибудь помогает мне узнать реальные IP-адреса клиентов, которые запрашивают наши серверы?