Tôi có một vấn đề với HAproxy.
Tôi sử dụng HAproxy làm bộ cân bằng tải phân phối các yêu cầu http đến 5 máy chủ web. thông thường, một yêu cầu của khách hàng được chuyển tiếp đến các máy chủ web có IP của bộ cân bằng. Nhưng tôi cần IP khách hàng hoặc IP thực sự yêu cầu thứ gì đó từ máy chủ web. Bởi vì chúng tôi cần phải đăng nhập IP của khách hàng thực sự.
Tôi cố gắng để có được IP của khách hàng trên các máy chủ web nhưng tôi không thể thành công cho đến bây giờ. Luôn luôn tôi thấy IP của bộ cân bằng tải.
Tôi sử dụng tùy chọn x-Forward-for nhưng nó không giải quyết được vấn đề. Sau đó, tôi đã tìm thấy một tùy chọn khác " nguồn 0.0.0.0:80 sử dụng clientrc " nhưng tôi đã bị lỗi khi cố gắng chạy HAproxy, đó là về nhu cầu biên dịch với tùy chọn USE_TPROXY của HAproxy. Tôi đã làm điều đó, tôi biên dịch lại HAproxy với tùy chọn USE_TPROXY nhưng không thay đổi gì cả. Tôi có thể làm gì để tìm hiểu IP của khách hàng thực sự.
Phiên bản kernel linux của tôi là 2.6.32-34 Ý tôi là kernel đó hỗ trợ proxy trong suốt. và tôi sử dụng UBUNTU 10,4 LTS
tập tin cấu hình của tôi ở đây
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) Trong khi thử nghiệm HAproxy, tôi đã sử dụng một trong hai dòng này.
Có ai giúp tôi tìm hiểu IP thực sự của các khách hàng đang yêu cầu từ máy chủ của chúng tôi không?