在 HAProxy 中,“故障转移(Failover)”通常不是单一配置,而是多层机制组合的结果。下面按「最常见、最实用的方式」给你讲清楚,并附配置示例。
这是最基础的故障转移。
backend app
option httpchk GET /healthz
server app1 10.0.0.1:8080 check
server app2 10.0.0.2:8080 check
✅ 效果:
常用参数:
check inter 2000 rise 2 fall 3
inter:检查间隔fall:失败几次算宕机rise:成功几次算恢复明确“主挂了才用备”
server main 10.0.0.1:8080 check
server backup 10.0.0.2:8080 check backup
✅ 特点:
默认就是故障转移
server s1 10.0.0.1:8080 check
server s2 10.0.0.2:8080 check
server s3 10.0.0.3:8080 check
HAProxy 本身也会挂,所以要双 HAProxy
VIP (10.0.0.100)
/ \
HAProxy A HAProxy B
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
virtual_ipaddress {
10.0.0.100
}
}
✅ 效果:
server local1 10.0.1.1:8080 check
server remote1 10.0.2.1:8080 check backup
或用 nginx / dns / anycast 在更上层做切换。
option httpchk GET /healthz
http-check expect status 200
非 200 即认为失败。
retries 3
option redispatch
DNS / SLB
|
Keepalived VIP
|
HAProxy (双机)
|
多个后端 (健康检查)
❌ 只配 HAProxy,不配 Keepalived → 单点
❌ 健康检查路径不存在 → 全被踢
❌ backup 没加 backup 参数
❌ 健康检查太重(压垮后端)
我可以直接给你完整可用配置。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。