在 HAProxy(1.5)中,我有此规则将所有请求重定向到规范域:
redirect prefix https://domain.tld code 301 unless { hdr(host) -i domain.tld }
这很好用。但是,我还启用了统计信息 ( stats uri /haproxy-stats
)。对于这些,我想禁用重定向,因为我需要通过它们自己的主机名访问特定的 haproxy 机器(它们位于 DNS 循环之后)。
有没有办法以这种方式配置 HAProxy?
答案1
这可以使用 ACL 规则来完成:
acl url_stats path /haproxy-stats
redirect prefix https://domain.tld code 301 unless { hdr(host) -i domain.tld or url_stats }
使用匿名 ACL 也有效:
redirect prefix https://domain.tld code 301 unless { hdr(host) -i domain.tld } || { path /haproxy-status }
然而,事实证明这完全没有必要,因为 HAProxy 不会将重定向规则应用于统计 URL;可能我缓存了一个旧的 301 重定向。