带有haproxy的多个varnish服务器

时间:2012-06-07 08:24:01

标签: varnish haproxy

我们计划在我们的基础架构中添加第二个清漆服务器。

平衡两台服务器的流量的更好方法是什么?我想我们可以在两台服务器前面使用haproxy,但如何配置它来平衡2种清漆之间的流量?理想的解决方案是,如果一个清漆熄火,所有流量都会流向另一个。

编辑:理想的行为是主动/主动conf,每个负载为50%,如果一个发生故障,haproxy会向另一个发送100%的负载。

2 个答案:

答案 0 :(得分:1)

另一种选择是将两个varnish实例放在同一个后端,但是通过uri或参数平衡请求。

这将允许您在同一个后端同时处于活动状态,并且仍然保持较高的缓存命中率,因为相同的uri将始终平衡到相同的清漆缓存(只要它可用)。 Balace uri还提供了一个可选的长度参数,以便在散列时使用。

下面是一个简单的例子:

前端http-in   acl my_acl   use_backend varnish if 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

答案 1 :(得分: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