2017-03-08 74 views
2

這裏是我的設置:HAProxy的動態配置

  • 我們確實有一個外部負載平衡器(AWS)連接到根域mydomain.com
  • 外部負載平衡器流量轉發到HAProxy的實例,HAProxy的有進一步轉發到的兩個內部負載平衡器
  • 我們有2個內部負載平衡器,第一點我們的應用程序的最新版本,第二負一個版本
  • 我們的每一個客戶都可以有1對多子域像SUB1。 mydomain.com,sub2。 SUB3
  • 部分子域名應該被重定向到舊版本,一些新的,所以同一個客戶端可以在子域

基本上新舊:

sub1.mydomain.com -> latest-load-balancer 
sub2.mydomain.com -> older-load-balancer 

的問題是如何設置這個路由,我們無法爲每個新的子域停止/啓動haproxy。未來可能會有更多的他們10k的子域名。

回答

3
  1. haproxy可以使用maps根據域決定使用哪個後端(內部負載平衡器)。
  2. haproxy可以是reloaded而不是當地圖改變時重新啓動
  3. 如果您不希望重新加載,您可以將map命令傳遞給unix套接字,從而實時更改地圖。
+0

羅斯,你給了我很有意思的方向,謝謝。說實話我已經找到了nginx + redis + lua的解決方法,但你的方式似乎更自然,我會試一試。 – abovesun

+0

你能解釋第三步更多,特別是我不確定我明白你的意思是「你可以傳遞map命令到unix套接字」謝謝。 – abovesun

+0

查看我的第三點鏈接(單詞'map'是鏈接)。如果您telnet到統計套接字,則可以使用「add map」命令將條目添加到地圖。我確定還有另外一個刪除條目的命令。 –