2012-06-07 31 views
1

我們計劃在我們的基礎結構中添加第二個清漆服務器。帶haproxy的多個清漆服務器

什麼是更好的方法來平衡流量拋出兩臺服務器?我認爲我們可以在兩臺服務器前使用haproxy,但是如何配置它以負載平衡兩種清漆之間的流量?理想的解決方案是,如果一個清漆掉下來,所有的流量都會流向另一個。

編輯:理想的行爲是一個主動/主動配置,每個負載50%,如果一個下降haproxy發送100%負載到另一個。

+0

您是否在尋找清漆主/從配置(其中只有一個是活躍在所有次)或者2個清漆實例同時爲交通提供服務? – Mojah

+0

帶有主動/主動理想配置的編輯問題。 –

回答

0

我想到的想法是使用兩個後端,並在每個備份中使用另一個服務器作爲備份,因此當服務器關閉時,所有請求都會轉到活動服務器。

frontend http-in 
    acl my_acl <whaever acl to split the traffic> 
    use_backend varnish2 if my_acl 
    default_backend varnish1 

backend varnish1 
    mode http 
    option httpchk GET /check.txt HTTP/1.0 
    server varnish1 192.168.222.51:6081 check inter 2000 
    server varnish2 192.168.222.52:6081 check inter 2000 backup 

backend varnish2 
    mode http 
    option httpchk GET /check.txt HTTP/1.0 
    server varnish2 192.168.222.51:6081 check inter 2000 
    server varnish1 192.168.222.52:6081 check inter 2000 backup 
1

另一種選擇是把兩者清漆實例在相同的後端,而是通過URI或參數的平衡要求。

這將允許您在同一個後端都有活動,並且仍然保持較高的高速緩存命中率,因爲相同的uri總是與相同的清漆高速緩存保持平衡(只要可用)。 Balace uri在散列時也使用長度的可選參數。

繼承人一個簡單的例子:

前端HTTP-在 ACL my_acl use_backend清漆如果my_acl

backend varnish1 
    mode http 
    balance uri 
    option httpchk GET /check.txt HTTP/1.0 
    server varnish1 192.168.222.51:6081 check inter 2000 
    server varnish2 192.168.222.52:6081 check inter 2000