Mapping 使HAProxy将请求转发到主机名而不是IP地址。

Mapping 使HAProxy将请求转发到主机名而不是IP地址。,mapping,haproxy,Mapping,Haproxy,我在一个IP地址上有3个虚拟主机。主机a、主机b和主机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_on

我在一个IP地址上有3个虚拟主机。主机a、主机b和主机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
结尾的传入URL。是否有办法将其转发到
http://Host_a/ABC/application
?他们使用主机名而不是相应的IP地址对我来说很重要。

主机名是HTTP请求的一部分,这意味着您可以使用HAProxy选项
requirep
将其设置为您想要的任何内容

reqirep ^Host:   Host:\ Host_a

您可以在所有三个后端中使用这种类型的选项。

谢谢Matt。我终于明白了。另一件我必须改变的事情是:{backend bc_host1 server host_a 192.162.1.10}