Apache-2.2

根據請求的虛擬主機創建後端組

  • July 30, 2011

假設我在 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

這個想法是擁有一個 HA、負載平衡的共享主機,使用者可以在其中選擇 2 到 6 台伺服器(在這種情況下)。另一件重要的事情是,我想在一些伺服器中而不是在所有伺服器中對站點進行負載平衡,以便我可以水平擴展以接受更多客戶。

是否可以?如果沒有,您現在是否有替代解決方案?

Google sez認為定義一堆 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

等等。根據需要擴展和充實。

引用自:https://serverfault.com/questions/295813