根据请求的虚拟主机创建后端组

根据请求的虚拟主机创建后端组

假设我在 haproxy 后面有 6 个 Web 服务器。Web 服务器应该使用 apache 提供虚拟主机(apache 或 nginex 都无所谓)。我希望能够根据虚拟主机指定传入的 HTTP 请求(命中 haproxy)应该去往何处。例如

a.domain.com 请求应该转到 web1 和 web2 b.domain.com 请求应该转到 web1、web2 和 web3 c.domain.com 请求应该转到 web4 和 web5 d.domain.com 请求应该转到 web5 和 web6 e.domain.com 请求应该转到 web3、web4、web5 和 web6

这个想法是拥有一个高可用性、负载平衡的共享主机,用户可以选择在多少台服务器上运行,在本例中为 2 到 6 台。另一个重要的事情是,我想在某些服务器上(而不是所有服务器上)对站点进行负载平衡,这样我就可以水平扩展以接受更多客户。

有可能吗?如果不行,您有其他解决方案吗?

答案1

谷歌专区定义一堆 ACL 是可行的方法,如下所示:

frontend http
    bind *:80

    acl host_site_a hdr(host) -i a.domain.com
    acl host_site_b hdr(host) -i b.domain.com

    use_backend site_a if host_site_a
    use_backend site_b if host_site_b

backend site_a
    server web1 web1:80
    server web2 web2:80

backend site_b
    server web1 web1:80
    server web2 web2:80
    server web3 web3:80

等等。根据需要进行扩展和充实。

相关内容