当前位置: 首页 > news >正文

vrrp实例script和 real_server中的HTTP_GET健康检查区别,使用场景总结

Keepalived核心健康检查:VRRP Script & HTTP_GET

在Keepalived高可用集群部署中,健康检查是保障服务连续性的核心机制。其中VRRP实例的script脚本检查与real_server的HTTP_GET检查是最常用的两种方式。

一、核心差异:从检测对象到作用机制

1. 检测维度:节点级 vs 服务级

  • VRRP Script:聚焦整个Keepalived节点的健康状态,检测范围涵盖节点可达性、系统级服务(如Nginx/HAProxy进程存活)、硬件资源等全局状态。
  • HTTP_GET:聚焦单个后端真实服务器(RealServer)的应用层健康状态,仅检测指定HTTP服务的可用性,不关心节点整体状态。

2. 作用机制:优先级调整 vs 负载池剔除

  • VRRP Script:通过weight参数影响节点优先级。脚本执行失败时,节点优先级会相应降低(通常配置为负数权重),当优先级低于备用节点时,触发VIP主备切换。
  • HTTP_GET:检测失败时,仅将当前RealServer从负载均衡池中移除,不影响Keepalived节点的主备角色,其他健康后端仍可正常承接请求。

3. 配置位置:全局独立配置 vs 实例内配置

  • VRRP Script:需在global_defs外单独定义vrrp_script块,通过track_script在VRRP实例中引用,支持自定义脚本逻辑。
  • HTTP_GET:直接嵌套在real_server配置块内,仅针对当前后端服务生效,配置更轻量化。

二、配置实战

1. VRRP Script配置(节点级检测)

适用于检测Nginx/HAProxy等反向代理服务的存活状态,确保节点故障时自动切换:

# 定义检测脚本 vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" # 自定义脚本路径 interval 1 # 检测间隔1秒 weight -30 # 失败时优先级降低30 fall 3 # 连续3次失败判定异常 rise 2 # 连续2次成功判定恢复 } # 在VRRP实例中引用 vrrp_instance VI_1 { state MASTER interface ens37 virtual_router_id 50 priority 100 track_script { chk_nginx # 关联检测脚本 } # 其他配置(认证、VIP等) }

配套脚本check_nginx.sh核心逻辑:

#!/bin/bash# 检查Nginx进程是否存在nginx_count=$(ps-C nginx --no-header|wc-l)if[$nginx_count-eq0];thensystemctl start nginx# 尝试重启sleep2if[$(ps-C nginx --no-header|wc-l)-eq0];thensystemctl stop keepalived# 重启失败触发切换fifi

2. HTTP_GET配置(服务级检测)

适用于检测后端Web服务可用性,确保故障服务不承接请求:

virtual_server 10.0.0.100 80 { lb_algo rr lb_kind DR protocol TCP # 后端真实服务器配置 real_server 10.0.0.14 80 { HTTP_GET { url { path / # 检测路径 status_code 200 # 期望响应码 } connect_timeout 3 # 连接超时3秒 nb_get_retry 3 # 重试3次 delay_before_retry 1 # 重试间隔1秒 } } }

三、适用场景

1. 优先用VRRP Script的场景

  • 核心反向代理节点的高可用(如Nginx/HAProxy集群),需节点级故障切换。
  • 检测系统级资源(如磁盘空间、内存使用率),避免节点因资源耗尽影响服务。
  • 需要自定义复杂检测逻辑(如结合日志分析、多服务联动检测)。

2. 优先用HTTP_GET的场景

  • 后端多RealServer负载均衡,需精准剔除单个故障服务。
  • Web服务健康检测(如接口可用性、页面完整性),需应用层状态验证。
  • 无需节点切换,仅需负载池动态调整的场景(如微服务集群后端)。

3. 组合使用场景

在高可用负载均衡架构中,可同时配置两种检查:

  • VRRP Script保障反向代理节点存活,实现节点级切换。
  • HTTP_GET保障后端RealServer健康,实现服务级故障隔离。
    这种组合既能避免节点单点故障,又能精准过滤异常后端,大幅提升集群稳定性。

四、关键注意事项

  1. VRRP Script的weight值需合理配置,确保优先级差值能触发切换(如主节点优先级100,备用节点90,脚本权重-30)。
  2. HTTP_GET不支持复杂逻辑,若需检测HTTPS服务,可改用SSL_GET配置。
  3. 避免过度检测:VRRP Script间隔建议≥1秒,HTTP_GET重试次数≤3次,防止占用过多资源。
  4. 脚本执行权限:VRRP Script默认以root用户执行,自定义脚本需确保可执行权限(chmod +x)。

总结

VRRP Script和HTTP_GET虽同为健康检查机制,但定位截然不同:前者守护Keepalived节点可用性,后者保障后端服务可用性。实际部署中,需根据集群架构分层配置——节点级故障用VRRP Script触发切换,服务级故障用HTTP_GET剔除异常,二者协同构建多层次高可用防护体系。

http://www.jsqmd.com/news/245070/

相关文章:

  • aa---(9)
  • 【课程设计/毕业设计】基于python-cnn深度学习的是否有污渍识别基于python-cnn的是否有污渍识别
  • LVS Nginx反向代理高可用实践
  • 基于MATLAB/Simulink的Statcom静止无功补偿器仿真探秘
  • 乐迪信息:船舶AI逆行检测有效遏制水上交通违规
  • matlab/simulink三相四桥臂逆变器仿真模型 采用的是电压外环电流内环控制策略,交流...
  • Flutter---时间核心类
  • C#源码 上位机 SECS协议,里面包含各种进制转换,用于半导体行业,程序全源码
  • aa---(6)
  • ‌别再用Jenkins了!GitLab CI+AI测试,才是中大型企业的标配‌
  • 最优控制和轨迹规划学习笔记 包含多个实际案例 倒立摆上翻控制 满足车辆运动学约束的路径规划 离...
  • 狂奔不死机:电鱼智能 RK3588 B2B 版应对足式机器人高频振动挑战
  • Labview Modbus - Tcp:PLC通讯的万能利器
  • ‌测试覆盖率85%?真正高质团队都在看“AI预测风险热力图”‌
  • 西门子S7-200PLC与MCGS组态联动下的污水处理智能控制设计
  • 中小学午休课桌椅新国标之外的“安全风险”:校金刚的产品设计更有优势
  • 含可再生能源的配电网最佳空调负荷优化控制Matlab代码
  • 防火墙双机热备01(主备模式)
  • 基于CarSim和Matlab的ABS模糊控制仿真研究
  • 电力电子工程师简历优化指南:从“简历泥潭”到入职邀约,只需三招
  • 风光及负荷多场景随机生成与缩减Matlab代码
  • 直流微电网储能单元功率分配/soc均衡 有参考文献,采用1kw光伏电池代替直流微电网,两台1k...
  • 刚拿到注塑厂报价单就懵?塑料粒子价格波动像坐过山车?今天直接甩你一套车间老师傅用了十年的硬核工具包,手把手教你拆解注塑成本(文末有彩蛋)
  • 探索四旋翼PID控制仿真模型:Matlab实现与应用
  • 三维的组合导航。 ins和卫星的组合导航算法,基于卡尔曼滤波和eskf滤波的都有。 MATLAB源码
  • 8款AI论文工具一站式操作指南:免费写开题报告超简单
  • Matlab ‖ 峰谷电价引导下电动汽车充电负荷优化-基于NSGA-II算法 关键词
  • 车辆轨迹自适应预瞄跟踪控制和自适应p反馈联合控制,自适应预苗模型和基于模糊p控制均在simul...
  • 基于Matlab和MatPower的配电网光伏储能双层优化配置模型(选址定容)及其在IEEE3...
  • 光伏储能+三相并离网逆变切换运行模型【含笔记】 包含Boost、Buck-boost双向DCD...