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

nginx + keepalived 搭建教程

1.安装依赖

yum install -y keepalived
systemctl start keepalived
systemctl enable keepalived

2.配置

a. keepalived.conf配置

global_defs {router_id nginx_server2 # 机器标识(backup节点为nfs_server2)
}vrrp_script chk {  script "/etc/keepalived/check_port.sh 192.168.1.151" interval 1    # 脚本执行间隔(s)fall 2  # 转换为失败状态,所需的执行成功次数rise 30  # 转换为成功状态,所需的执行成功次数weight -20   
}vrrp_instance nfs {state BACKUP interface ens192  # 绑定的网卡(用来发VRRP包; 绑定VIP), 网卡down会进入FAULT状态virtual_router_id 9  priority 90 advert_int 1 authentication {# 认证权限,防止非法节点进入auth_type PASSauth_pass 12345678}virtual_ipaddress {# VIP, 可设置多个192.168.1.151}track_script {# 健康检查脚本chk}notify "/etc/keepalived/change_state.sh /var/log/keepalived.log"  
}

b. check_port.sh监听脚本

#!/bin/shisMaster=`ip addr show | grep "scope global" | grep $1`
if [ -n "$isMaster" ]
thenPORT_PROCESS=`ps -ef | grep nginx | grep -v grep | wc -l`if [ $PORT_PROCESS -eq 0 ]thenecho "nginx Is Not Running, End."exit 1fi
elseecho "is backup"
fi

c. change_state.sh主从切换脚本(仅仅打印日志, 可去除)

#!/bin/sh# 参数1: 转态变化输出文件; 参数3: VRRP 实例; 参数4: 新转态; 状态5: 权重
# 示例: /var/log/keepalived.log INSTANCE nfs MASTER 100outFilename=$1
instance=$3
newState=$4
priority=$5
date=`date "+%Y-%m-%d %H:%M:%S"`
content="$date $3 change to $4, priority: $5"
echo "$content" >> $1
http://www.lryc.cn/news/333575.html

相关文章:

  • React事件和原生事件的执行顺序
  • 为什么在计算查询Q和键K的矩阵乘法时需要转置键矩阵K。示例说明q11,k11代表什么。线性变换矩阵 W_q 用于生成查询,W_k 用于生成键怎么获取的。
  • 剑指Offer题目笔记27(动态规划单序列问题)
  • 撸代码时,有哪些习惯一定要坚持?
  • 【leetcode面试经典150题】17.罗马数字转整数(C++)
  • 前后端开发之——文章分类管理
  • 第12届蓝桥杯省赛 ---- C/C++ C组
  • IVS模型解释
  • 通用开发技能系列:Git
  • 最新怎么订阅OnlyFans上喜欢的博主,详细教程
  • Mysql故障和优化
  • Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理
  • 14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)
  • Android 系统大致启动流程
  • 【Web】2024红明谷CTF初赛个人wp(2/4)
  • stable-diffusion-webui安装教程
  • 如何魔改 diffusers 中的 pipelines
  • 解放办公室的利器!让证卡打印机轻松应对繁忙工作场景
  • 2012年认证杯SPSSPRO杯数学建模A题(第二阶段)蜘蛛网全过程文档及程序
  • ES学习日记(七)-------Kibana安装和简易使用
  • react 父子组件的渲染机制 | 优化手段
  • elementPlus el-table动态列扩展及二维表格
  • vitepress系列-04-规整sideBar左侧菜单导航
  • golang slice总结
  • MySQL 数据库的优化
  • Redis 的主从复制、哨兵和cluster集群
  • Unity进阶之路(2)UI Toolkit
  • 实现Hello Qt 程序
  • 若依 ruoyi-vue 接口挂载获取Resources静态资源文件权限校验
  • 【STM32嵌入式系统设计与开发】——16InputCapture(输入捕获应用)