Keepalived + Nginx - linux 灾备方案(实现主备、热备)
Keepalived + Nginx - linux 灾备方案(实现主备、热备)
主备
- 两台服务器上配置Nginx反向代理Tomcat集群配置
- 访问虚拟ip 192.168.50.166,直接转入nginx
- 当主节点宕机,192.168.50.166会绑定备用节点ip,此时访问则有备用节点nginx代理
- 当主节点部署的nginx服务宕机则服务无法正常访问,需要配合nginx拉起脚本,检测nginx是否存活
- 主节点配置
global_defs {# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一router_id keep_87
}vrrp_instance VI_1 {# 表示状态是MASTER主机还是备用机BACKUPstate MASTER# 该实例绑定的网卡interface enp2s0#0保证主备节点一致即可virtual_router_id 77# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 100# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.166}
}
- 备用节点配置
global_defs {# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一router_id keep_160
}vrrp_instance VI_1 {# 表示状态是MASTER主机还是备用机BACKUPstate BACKUP# 该实例绑定的网卡interface enp0s31f6#0保证主备节点一致即可virtual_router_id 77# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 50# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.166}
}
- 启动 Keepalived 测试虚拟ip绑定
- 通过查看ip与虚拟ip绑定关系,现在是与主节点87绑定的
- 页面效果
- 这个时候无论怎么刷新,都是由87主节点上部署的nginx服务反向代理的服务
- 停止主节点的Keepalived服务测试ip漂移
- 通过下图,断定ip漂移成功,当87主节点服务宕机后,虚拟166ip会与160ip自动绑定
- 页面效果
- 此时走的是160上部署的备用节点nginx反向代理的服务
- 启动87主节点模拟主节点修复测试
- 166会解除与160的绑定,继续与87绑定
- 此时访问,继续由主节点关联的nginx提供反向代理服务
- nginx拉起脚本
- 检测nginx是否存活,如果没有nginx进程则杀掉 keepalived 进程
- vim /etc/keepalived/nginx_auto_start.sh
- 需要为该文件增加运行权限
- chmod +x /etc/keepalived/nginx_auto_start.sh
- 检测nginx是否存活,如果没有nginx进程则杀掉 keepalived 进程
#!/bin/bashA=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginx# 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机sleep 3if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfi
fi
- 在Keepalived核心配置文件中加入自动运行代码块
- 间隔2秒检测一次
- 与vrrp_instance评级
vrrp_script check_nginx_alive {script "/etc/keepalived/check_nginx_alive_or_not.sh"interval 2 # 每隔两秒运行上一行脚本# weight 10 # 如果脚本运行成功,则升级权重+10# weight -10 # 如果脚本运行失败,则升级权重-10
}
- 在vrrp_instance 代码块中引入即可
track_script {check_nginx_alive # 追踪 nginx 脚本
}
热备
- 需要NDF解析对应两个ip(192.168.50.166、192.168.50.167)
- 在虚拟ip:192.168.50.166服务器视角205为备用服务器;
- 在虚拟ip:192.168.50.167服务器视角87为备用服务器;
- 其中任意一台服务器宕机,2个虚拟ip都会漂移至另一台服务器,也就是一台服务器绑定两个虚拟ip
- 服务器87配置文件
global_defs {# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一router_id keep_87
}vrrp_instance VI_1 {# 表示状态是MASTER主机还是备用机BACKUPstate MASTER# 该实例绑定的网卡interface enp2s0#0保证主备节点一致即可virtual_router_id 77# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 100# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.166}
}vrrp_instance VI_2 {# 表示状态是MASTER主机还是备用机BACKUPstate BACKUP# 该实例绑定的网卡interface enp2s0#0保证主备节点一致即可virtual_router_id 88# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 50# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.167}
}
- 服务器205配置文件
global_defs {# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一router_id keep_160
}vrrp_instance VI_1 {# 表示状态是MASTER主机还是备用机BACKUPstate BACKUP# 该实例绑定的网卡interface enp0s31f6#0保证主备节点一致即可virtual_router_id 77# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 50# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.166}
}vrrp_instance VI_2 {# 表示状态是MASTER主机还是备用机BACKUPstate MASTER# 该实例绑定的网卡interface enp0s31f6#0保证主备节点一致即可virtual_router_id 88# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选priority 100# 主备之间同步检查时间间隔,单位秒advert_int 1# 认证权限密码,防止非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚拟出来的ip,可以有多个(vip)virtual_ipaddress {192.168.50.167}
}
Keepalived + Nginx - linux 灾备方案(实现主备、热备)相关推荐
- 算法高级(15)-LVS的负载均衡策略及LVS+KeepAlived+Nginx实现高可用方案
前面讲的nginx负载均衡,是属于网络七层负载,今天讲另外一种负载均衡技术LVS,它是基于网络四层进行负载,性能很好,通常在大型项目中,我们会同时使用四层和七层负载. 一.LVS简介 LVS是Linu ...
- linux双机热备软件 mysql_linux mysql双机热备
linux mysql双机热备与win mysql双机热备略有不同,至少在win下面很快就OK. 本例使用的是mysql5.1.45编译安装 一.linux下热备修改/etc/my.cnf 具体修改如 ...
- docker实现MySQL主主互备(主主双机热备)
文章目录 环境配置 主主互备(主主双机热备) 主MySQL服务器A 主MySQL服务器B 配置主MySQL服务器A和主MySQL服务器B 环境配置 本地操作系统:Win10 虚拟机的操作系统:Cent ...
- 【MySQL系列】单机热备(主从结构)和双机热备介绍和使用
Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份的数据库中.实现mysql数据库的热 ...
- linux mysql 5.7 双机热备_2017年5月5日 星红桉liunx动手实践mysql 主主双机热备
第一步:安装mysql 可参考http://www.runoob.com/mysql/mysql-install.html 心得: rpm -ivh mysql-community-common-5. ...
- mysql双机热备数据库_MySQL 数据库双机热备方案
标签: 转载:http://www.microcolor.cn/solutions/80.html 本手册主要介绍通过使用 MicroColor ServHAMirror/Cluster 软件在Win ...
- 双机热备 ip地址_SBC双机热备方案
概述 随着通信全IP化的进程,现代企业中基于IP的语音.视频.会议.融合通信已广泛应用,同时企业通信也面临着新挑战,包括安全攻击.跨网NAT穿越以及业务稳定运行,高可靠方案尤为重要,因此在组网中部署S ...
- mysql双机互备linux成功的_配置MySQL双机热备 - Linux服务器MySQL双机热备份试验_数据库技术_Linux公社-Linux系统门户网站...
二.配置MySQL双机热备 传统模式都是采用MySQL双机互备,至于双机热备我搜索了大量的精华帖子都没有发现安装配置文档.故我的一个想法产生了:当建立新的数据库时,默认会建立到/usr/local/m ...
- 双机热备_什么是双机热备?
说到双机热备也许很多人都不是很了解,但是对于技术管理人员来说这是十分常见的.当业务系统非常重要,不允许出现中断或故障,往往就需要用到双机热备.以添添呼呼叫中心系统为例,我们为了保障客户在使用系统的时候 ...
最新文章
- Linux系统介绍(二)文件系统结构
- 1.17.Flink 并行度详解(Parallel)、TaskManager与Slot、Operator Level、Execution Environment Level、Client Level等
- 阿里开源Canal--①简介
- 前端为什么要使用组件化的思想,通过一个实例来分析
- C#中如何创建文件夹,复制文件夹,删除文件夹的方法
- 问题 B: 算术基本运算 山东科技大学 oj c语言
- nginx 1.12基础知识
- vb中线性拟合_#vb调用excel线性拟合#如何在excle表格中做线性回归分析
- 矩阵基础11- 广义逆矩阵及应用
- 纽迪瑞科技入选快公司FastCompany最具创新力榜单:科技与制造TOP30
- python输入直角三角形两条直角边、输出斜边长_python直角三角形的两个直角边、求斜边_直角三角形斜边公式计算器 两个直角边边长的平方加起来等......
- 为什么有些公司不招大龄程序员?
- 配置JDK、Tomcat环境、DNK环境
- Tesseract-OCR5.0软件安装和语言包安装(Windows系统)
- 硬件加速 setlayertype
- win7文件服务器代码,win7搭建文件服务器
- 鸿鹄系统和鸿蒙系统区别,荣耀智慧屏正式发布 鸿蒙系统+鸿鹄818芯片 售价3799元起...
- win下apache2.4 支持php8.0
- Ubuntu下编译OpenHarmony
- 动力节点【CRM客户管理系统】笔记1.简介、技术架构、软件开发生命周期、CRM核心业务介绍