1

我们计划在我们的基础设施中添加第二台清漆服务器。

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

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

4

2 回答 2

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
于 2012-08-18T18:16:12.787 回答
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
于 2012-06-07T15:13:42.263 回答