我在具有多个接口的计算机上运行HAProxy,我希望从客户端请求所在的接口的源IP Build 到后端的连接 . 使用listen块中的文档中的source指令没有似乎这样做,因为所有连接似乎都来自第一个接口 . 我的配置如下:
listen f_192.168.1.10_http
bind 192.168.1.10:80
source 192.168.1.10
mode http
option httplog
capture request header Host len 30
use_backend b_domain1_http if { hdr(host) -i domain1.com }
listen f_192.168.1.20_http
bind 192.168.1.20:80
source 192.168.1.20
mode http
option httplog
capture request header Host len 30
use_backend b_domain1_http if { hdr(host) -i domain1.com }
backend b_domain1_http
mode http
option httplog
server srv1 domain1.com:80 check inter 30s
IE浏览器 . 我很难在接口192.168.1.10上获得连接,以便在连接到后端时使其源IP为192.168.1.10 . 现在,无论连接是在192.168.1.10还是192.168.1.20上进行,到后端的传出连接都是从192.168.1.10开始的 . 我认为在listen中使用source会实现这一点,但是当我查看netstat -at的输出时,所有与后端的连接都来自1个接口 .
有没有人知道如何确保连接到后端的源IP与原始客户端请求的接口相同?
1 回答
我相信你可以使用 source 作为 server 的参数 .
我相信有可能用
%fi
代替${frontend_ip}
,您也可以使用%fp
或${frontend_port}
来指定端口 . 这样您就可以删除前端中的源语句 .