HAProxy:多个前端,相同绑定

HAProxy:多个前端,相同绑定

配置绑定到 HAProxy 上同一端口的多个前端是否可以/正确?

frontend A
    bind :80
    bind :2000-5000
    acl rule_about_A
    use_backend server_A if rule_about_A

frontend B
    bind :80
    acl rule_about_B
    use_backend server_B if rule_about_B

在此用例中,前端 A 需要绑定到 80 和 2000-5000 范围。对于前端 B,我不想将其绑定到所有这些端口,而只绑定到 80。

我认为如果我以这种方式配置它,它会看起来很干净,而不是使用单个前端并使用 ACL,但似乎该配置使 HAProxy 工作错误 - 有时应用正确的规则,有时则不应用。

在将这些前端合并为一个之前,是否可以使用绑定到相同端口的多个前端?

编辑:顺便说一句,我正在使用 HAProxy 1.5

答案1

不,你不能这样做并期望得到明智的行为。

对端口 80 的请求似乎会随机到达一个前端或另一个前端。这种配置的结果是不确定的,虽然从技术上讲它无效,但从实际目的来看,它是一种无意义的配置。

所有应用于端口 80(或任何端口)的规则都需要在绑定到端口 80 的单个frontend(或单个)上指定。listen

相关内容