У мене проблема з HAproxy.
Я використовую HAproxy як балансир завантаження, який поширює вхідні запити http на 5 веб-серверів. зазвичай запит клієнта пересилається на веб-сервери з IP-адресою балансира. Але мені потрібні IP-адреси клієнтів або справжні IP-адреси, які щось вимагають від веб-серверів. Тому що нам потрібно реєструвати IP-адреси реальних клієнтів.
Я намагаюся отримати IP-адреси клієнта на веб-серверах, але досі не можу досягти успіху. Завжди бачу IP балансира навантаження.
Я використовую x-forward-for option, але це не вирішує проблему. Після цього я знайшов інший варіант " source 0.0.0.0:80 userc 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-адреси клієнтів, які запитують з наших серверів?