我们有一组 6 个后端服务于我们的网站。因为我们使用多个数据中心,所以我们发现当我们让 varnish 将请求发送到 localhost httpd 服务器(在端口 81 上运行)时,我们会获得最佳性能。这当然是 varnish 支持的非常基本的配置,可以使用 fallback director 完成:
director default fallback {
{ .backend = localbackend; }
{ .backend = web1; }
{ .backend = web2; }
{ .backend = web3; }
etc...
}
然而,后备主管会依次尝试其他后端,直到找到一个健康的后端。最大的问题是,在上面的配置中,如果 localbackend 失败,web1 将占用所有流量!!!这将使 web1 过载并且它会生病。然后所有请求都转到 web3 ......现在它将获得正常流量的 3 倍......导致级联故障。
因此,我们需要一个配置,如果它是健康的,则允许所有请求发送到 localhost httpd 服务器,但如果不是,则以循环类型的方式将请求发送到其他健康的服务器。
提前感谢您提供您可能想到的任何建议和解决方案......非常感谢您的帮助。