我在一个IP地址上有3个虚拟主机.Host_a,Host_b和Host_c都映射到192.168.1.10。
我的HAProxy配置如下:
frontend http
.
.
.
acl host_one path_end -i /ABC/application
acl host_two path_end -i /XYZ/application
acl host_three path_end -i /PQR/application
use_backend be_host1 if host_one
use_backend be_host2 if host_two
use_backend be_host3 if host_three
backend be_host1
server channel Host_a
backend be_host2
server channel Host_b
backend be_host3
server channel Host_c
现在,例如,HAproxy会将请求转发给192.168.1.10/ABC/application
,以防它与以/ABC/application
结尾的传入网址匹配。有没有办法可以转发它到http://Host_a/ABC/application
?对我来说,重要的是他们使用主机名而不是相应的IP地址。
答案 0 :(得分:1)
主机名是HTTP请求的一部分,这意味着您可以使用HAProxy选项reqirep
将其设置为您想要的任何内容。
reqirep ^Host: Host:\ Host_a
您可以在所有三个后端使用此类型的选项。