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

时间:2013-11-19 06:47:55

标签: mapping haproxy

我在一个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地址。

1 个答案:

答案 0 :(得分:1)

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

reqirep ^Host:   Host:\ Host_a

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