2012-06-07 32 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