HAProxy 定义子域通配符

HAProxy define subdomain wildcard

我正在尝试创建一个 HAProxy 脚本,它将某些子域与特定后端相匹配。

给定域:

foo.x.y.z
bar.x.y.z
bar.a.b.c
baz.a.b.d.e

我希望将这些前端映射到后端 foo、bar 和 baz。

我试图通过使用 hdr_beg() 使它正常工作 - 但我遗漏了一些东西所以它不起作用 :-/

这是我目前的配置:

frontend HttpFrontend
        bind *:80
        mode http
        acl fooBackend hdr_beg(host) -i foo.
        acl barBackend hdr_beg(host) -i bar.
        default_backend bazBackend

backend bazBackend
        mode http
        balance leastconn
        option forwardfor
        server node1 10.0.1.10:80 check inter 5000 rise 3 fall 3
        server node2 10.0.2.10:80 check inter 5000 rise 3 fall 3
        server node3 10.0.3.10:80 check inter 5000 rise 3 fall 3

backend fooBackend
        mode http
        option forwardfor
        server node4 10.0.1.14:80

backend barBackend
        mode http
        option forwardfor
        server node4 10.0.1.14:80

你能告诉我我错过了什么吗?! 提前致谢!

你需要 use_backend.

frontend HttpFrontend
    bind *:80
    mode http
    acl fooBackend hdr_beg(host) -i foo.
    acl barBackend hdr_beg(host) -i bar.

    use_backend fooBackend if fooBackend
    use_backend barBackend if barBackend

    default_backend bazBackend
<...>

来源:https://cbonte.github.io/haproxy-dconv/configuration-1.6.html#use_backend