0

0

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

冷漠man

冷漠man

发布时间:2025-12-31 17:54:50

|

173人浏览过

|

来源于php中文网

原创

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

linux高可用集群部署教程_haproxykeepalived负载均衡实践

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

稿定AI绘图
稿定AI绘图

稿定推出的AI绘画工具

下载
  • 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 是“守门的人”,两者配合好了,高可用才算真正落地。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

422

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

172

2023.10.30

css3transition
css3transition

css3transition属性用于指定如何从一个CSS样式过渡到另一个CSS样式,本专题为大家提供transition相关的文章、相关下载和相关课程,大家可以免费体验。

225

2023.06.27

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

387

2023.08.14

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

266

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

385

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

1035

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1666

2024.08.16

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.3万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号