下面从原理 → 常见架构 → 配置示例 → 健康检查 → 故障切换 → 注意事项几个层面,说明如何用 HAProxy 做高可用(HA)。
HAProxy 本身不是“自动主备切换”的工具,而是:
真正的高可用通常分为两层:
VIP (虚拟IP)
|
+-----+------+
| |
HAProxy1 HAProxy2
| |
+--+--+ +--+--+
|App1| |App2|
|App2| |App3|
+----+ +----+
HAProxy
|
+-- backend server1
+-- backend server2
+-- backend server3
frontend http_front
bind *:80
default_backend app_pool
backend app_pool
balance roundrobin
option httpchk GET /healthz
server app1 10.0.0.11:8080 check
server app2 10.0.0.12:8080 check
server app3 10.0.0.13:8080 check
✅ 关键点:
check:启用健康检查option httpchk:HTTP 级别探测backend app_pool
balance leastconn
option httpchk GET /healthz
http-check expect status 200
server app1 10.0.0.11:8080 check inter 2s fall 3 rise 2
参数说明:
inter 2s:每 2 秒检查一次fall 3:连续 3 次失败判定下线rise 2:连续 2 次成功恢复上线vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
virtual_ipaddress {
192.168.1.100
}
}
state BACKUP
priority 100
✅ VIP(192.168.1.100)只会出现在一台 HAProxy 上
App 节点宕机
→ HAProxy 健康检查失败
→ 自动剔除
HAProxy 节点宕机
→ Keepalived 检测不到心跳
→ VIP 漂移
→ 客户端无感知
stats 页面监控如果你愿意,可以告诉我:
我可以给你更精确的配置方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。