我们计划在我们的基础架构中添加第二个清漆服务器。
平衡两台服务器的流量的更好方法是什么?我想我们可以在两台服务器前面使用haproxy,但如何配置它来平衡2种清漆之间的流量?理想的解决方案是,如果一个清漆熄火,所有流量都会流向另一个。
编辑:理想的行为是主动/主动conf,每个负载为50%,如果一个发生故障,haproxy会向另一个发送100%的负载。
答案 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