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

【Linux】Keepalived + Nginx高可用方案

一、安装Keepalived

yum install -y keepalived
systemctl enable keepalived

二、Nginx 配置修改

vi /usr/local/nginx/html/index.html

随便改改,我改的是welcome后边加87

三、Keepalived 配置修改

3.1 配置文件

vi /etc/keepalived/keepalived.conf

主节点

global_defs {router_id MAIL_MASTER  # 唯一标识,建议不同节点不同名称script_user root   # 明确指定执行脚本的用户(如 root)log_file /var/log/keepalived.log  # 直接指定日志文件(需 Keepalived v2.0.0+)log_level INFO          # 日志级别:INFO、NOTICE、WARNING、ERR
}vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"  # 健康检查脚本路径interval 1   # 检测间隔(秒)weight -20   # 检测失败时优先级降低值fall 2       # 检测连续2次失败才算确定是真失败rise 1       # 检测1次成功就算成功。
}vrrp_instance VI_1 {state MASTER          # 主节点为 MASTER,备节点为 BACKUPinterface ens192      # 网卡名称(需根据实际修改)virtual_router_id 51  # 虚拟路由 ID,主备必须一致(范围 0-255)priority 100          # 优先级 advert_int 1          # 心跳间隔(秒)authentication {auth_type PASS    # 认证方式auth_pass 123456  # 认证密码(主备一致)}virtual_ipaddress {10.31.8.85        # 虚拟IP(VIP)}track_script {check_nginx       # 引用健康检查脚本}unicast_peer {10.31.8.87        # 备节点的 IP 地址}preempt_delay 15      # 主节点恢复后,延迟15秒抢占虚拟IP,备节点不要配置
}

备节点

global_defs {router_id MAIL_BACKUP  # 唯一标识,建议不同节点不同名称script_user root   # 明确指定执行脚本的用户(如 root)log_file /var/log/keepalived.log  # 直接指定日志文件(需 Keepalived v2.0.0+)log_level INFO          # 日志级别:INFO、NOTICE、WARNING、ERR
}vrrp_script check_nginx {script "/etc/keepalived/check_nginx.sh"  # 健康检查脚本路径interval 1   # 检测间隔(秒)weight -20   # 检测失败时优先级降低值fall 2       # 检测连续2次失败才算确定是真失败rise 1       # 检测1次成功就算成功。
}vrrp_instance VI_1 {state BACKUP          # 主节点为 MASTER,备节点为 BACKUPinterface ens192      # 网卡名称(需根据实际修改)virtual_router_id 51  # 虚拟路由 ID,主备必须一致(范围 0-255)priority 99           # 优先级 advert_int 1          # 心跳间隔(秒)authentication {auth_type PASS    # 认证方式auth_pass 123456  # 认证密码(主备一致)}virtual_ipaddress {10.31.8.85        # 虚拟IP(VIP)}track_script {check_nginx       # 引用健康检查脚本}unicast_peer {10.31.8.86        # 主节点的 IP 地址}
}

3.2 检测Nginx脚本

vi /etc/keepalived/check_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginx #尝试重新启动nginxsleep 2 #睡眠2秒if [ `ps -C nginx --no-header | wc -l` -eq 0 ];thenkillall keepalived #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点fi
fi

四、启动Keepalived

systemctl restart keepalived
http://www.dtcms.com/a/351734.html

相关文章:

  • [pilot智驾系统] 驾驶员监控守护进程(dmonitoringd)
  • 从代码学习深度强化学习 - 多智能体强化学习 IPPO PyTorch版
  • pytorch_grad_cam 库学习笔记——基类ActivationsAndGradient
  • vue2 和 vue3 生命周期的区别
  • 【Android】不同系统API版本_如何进行兼容性配置
  • 2014-2024高教社杯全国大学生数学建模竞赛赛题汇总预览分析
  • VMDK 文件
  • 软考-系统架构设计师 计算机系统基础知识详细讲解二
  • springcloud篇5-微服务保护(Sentinel)
  • Spring Boot mybatis-plus 多数据源配置
  • 【CVE-2025-5419】(内附EXP) Google Chrome 越界读写漏洞【内附EXP】
  • Kafka面试精讲 Day 1:Kafka核心概念与分布式架构
  • Elasticsearch中的协调节点
  • 详解kafka基础(一)
  • JavaScript常用的算法详解
  • Cherry-pick冲突与Git回滚
  • Oracle跟踪及分析方法
  • 力扣100+补充大完结
  • MySql 事务 锁
  • 推荐系统学习笔记(十四)-粗排三塔模型
  • 庖丁解牛:深入解析Oracle SQL语言的四大分类——DML、DDL、DCL、TCL
  • KubeBlocks for Oracle 容器化之路
  • 高校党建系统设计与实现(代码+数据库+LW)
  • 从零开始的 Docker 之旅
  • HIVE的高频面试UDTF函数
  • 【软考论文】论面向对象建模方法(动态、静态)
  • 无人机倾斜摄影农田航线规划
  • HTML应用指南:利用GET请求获取中国银行人民币存款利率数据
  • SciPy科学计算与应用:SciPy线性代数模块入门-矩阵运算与应用
  • 精确位置定位,AR交互助力高效作业流程​