我想知道是否有办法在 haproxy 中配置默认后端,以便它在一组后端服务器(下面示例中为三个)之间平衡请求,从而保持默认后端作为故障转移,仅当三个主要后端发生故障时。
它应该是这样的:
server backend-0 10.10.10.0:3000 check
server backend-1 10.10.10.1:3100 check
server backend-2 10.10.10.2:3200 check
server backend-default 10.10.10.3:3300 check
weight 0
我曾尝试在后端默认值中设置,但是这会将服务器从平衡算法中完全删除。
答案1
有点像——它被称为“备份”:
server backend-default 10.10.10.3:3300 check inter 5000 rise 1 fall 3 backup
来自haproxy 文档:
从版本 1.1.17 开始,可以指定备份服务器。只有在没有其他服务器可用时才会请求这些服务器。这可能只对提供维护页面有用,或者定义一个活动服务器和一个备份服务器(很少在 TCP 模式下使用)。要使服务器成为备份服务器,只需在其行中添加“备份”选项。这些服务器还支持 cookie,因此如果为备份服务器指定了 cookie,则分配给此服务器的客户端将坚持使用它,即使其他服务器回来了。相反,如果没有为这样的服务器分配 cookie,客户端的 cookie 将被删除(空 cookie = 删除),并且在它们回来后将与其他服务器进行平衡。请注意,默认情况下备份服务器之间没有负载平衡。如果有多个备份服务器,则仅在第一个服务器死机时才使用第二个服务器,依此类推。要强制备份服务器之间的负载平衡,请指定“allbackups”选项。