HAProxy:多个前端,相同的绑定

Jon*_*297 12 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
Run Code Online (Sandbox Code Playgroud)

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

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

在将这些前端作为单个加入之前,是否可以使用绑定到相同端口的多个前端?

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

Mic*_*bot 14

不,您不能这样做并期望明智的行为。

对端口 80 的请求似乎是随机到达一个前端或另一个前端。这种配置的结果是未定义的,虽然在技术上我无效,但对于所有实际目的来说,这是一个无意义的配置。

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