信息发布→ 登录 注册 退出

Linux高可用集群部署教程_HAProxyKeepalived负载均衡实践

发布时间:2025-12-31

点击量:
HAProxy+Keepalived高可用集群需协同配置:HAProxy负责七层负载均衡与健康检查,Keepalived通过VRRP管理VIP实现秒级故障切换,二者须避免脑裂、时间同步、真实IP通信及日志统一。

用 HAProxy + Keepalived 搭建 Linux 高可用负载均衡集群,核心是让流量智能分发、后端服务故障时自动切换、VIP(虚拟 IP)不中断。这不是简单装两个软件就能跑起来的,关键在配置协同与状态同步。

HAProxy 负载均衡配置要点

HAProxy 作为七层代理,负责 HTTP/HTTPS 流量分发。需明确后端服务器健康检查机制、负载算法和超时策略。

  • 启用 http-checkoption httpchk,用 HEAD /health 检查后端 Web 服务是否存活
  • 推荐使用 balance roundrobinbalance leastconn,避免单节点过载
  • 设置 timeout connect 5stimeout server 30s,防止慢连接拖垮整个代理
  • 前端绑定 bind *:80bind *:443 ssl crt /etc/haproxy/certs.pem,支持 HTTPS 卸载

Keepalived 实现 VIP 高可用

Keepalived 通过 VRRP 协议管理虚拟 IP,主节点持有 VIP,故障时从节点秒级接管。它不转发流量,只保障入口地址永续。

  • 主节点 priority 100,从节点设为 90,确保主优先;都开启 preempt 实现故障恢复后自动切回
  • vrrp_script 监控 HAProxy 进程:若 killall -0 haproxy 失败,则降低本机优先级触发切换
  • VIP 绑定网卡要和实际业务网段一致,例如 virtual_ipaddress { 192.168.1.100/24 dev eth0 }
  • 关闭防火墙或放行 VRRP 组播(协议号 112),否则节点间无法通信

双机协同的关键细节

HAProxy 和 Keepalived 同机部署时,必须避免“脑裂”和“假死切换”。不能只依赖进程存在,而要结合服务响应能力判断真实状态。

  • Keepalived 的 check 脚本建议每 2 秒执行一次,失败 3 次再降权,避免瞬时抖动误判
  • 两台机器时间必须同步(chrony/NTP),否则 VRRP 报文可能被丢弃
  • HAProxy 配置里后端 server 行不要写 localhost 或 127.0.0.1,要用真实内网 IP,否则从节点接管 VIP 后无法连通后端
  • 日志统一收集:HAProxy 记录到 rsyslog 的 local2,Keepalived 输出到 local0,便于排查切换原因

验证与日常巡检项

上线前必须模拟故障验证流程,运行中也要定期确认核心状态是否符合预期。

  • ip a 查看 VIP 是否仅在一台机器上出现;用 curl -I http://VIP 确认服务可达
  • 手动 kill -9 haproxy 进程,观察 keepalived 日志(/var/log/messages)是否触发 state transition
  • 检查 ps aux | grep keepalivedsystemctl status keepalived,确认主从角色未异常反转
  • HAProxy 的 stats 页面(需配置 listen stats)可实时查看后端状态、当前连接数、错误率等

不复杂但容易忽略。配对使用时,HAProxy 是“干活的人”,Keepalived 是“守门的人”,两者配合好了,高可用才算真正落地。

标签:# linux  # 前端  # 防火墙  # ipad  # ssl  # 后端  # curl  # proxy  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!