HaProxy - 能够将子域和基域重定向到同一后端

HaProxy - 能够将子域和基域重定向到同一后端

我需要一些有关 HaProxy 设置方面的帮助。

目前,我有以下配置:

frontend fe_main_http
  bind :80
  reqadd X-Forwarded-Proto:\ http
  use_backend %[req.hdr(Host),lower]

frontend fe_main_https
    bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/ no-sslv3 no-tls-tickets
    reqadd X-Forwarded-Proto:\ https
    use_backend %[req.hdr(Host),lower]


backend test1.domain.com
    redirect scheme https if !{ ssl_fc }
    server s1 1.2.3.4:80 check

...

这意味着,任何域名都将被重定向到适当命名的后端。(例如:example.combackend example.com

问题是 - 我也希望为这些域的子域设置它。基本上来说,任何子域名基础域名(例如test.example.com*.example.com以及基础域名本身(例如example.com应该指向同一个后端(例如backend example.com)。

我听说可以用正则表达式来实现;然而,我没有成功设置这个东西。:(

也许有人遇到过类似的问题并可以帮助我?

提前致谢!

答案1

您实际上并不需要正则表达式(记住它们很昂贵)但您确实需要指定域名。

考虑一下:

        use_backend example.com if { req.hdr(host) -i example.com }

现在匹配所有子域名-m end

        use_backend example.com if { req.hdr(host) -i -m end .example.com }

相关内容