首页 > 解决方案 > HAProxy:如何匹配主机名而不是 IP 地址

问题描述

我正在尝试匹配host请求标头并使用适当的后端来路由请求。

这是我想要匹配的(不起作用):

acl from_external_url req.hdr(Host) -i mydomain.com  

# Chrome dev tools network tab does show mydomain.com set as the Host header

但是,匹配直接 IP 地址有效(我不想要):

acl from_external_url req.hdr(Host) -i 22.22.22.22

那么,如何在主机名而不是 IP 上创建 HAProxy 路由?

更新1:

use_backend oid_external if from_external_url
use_backend oid_internal if !from_external_url

标签: haproxy

解决方案


我使用以下方式根据主机名进行路由,因为我有大约 12 个站点通过 haproxy。

acl host_mydomain.com hdr(host) -i mydomain.com
use_backend oid_external if host_mydomain.com

推荐阅读