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
#!/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 灾备方案(实现主备、热备)相关推荐

  1. 算法高级(15)-LVS的负载均衡策略及LVS+KeepAlived+Nginx实现高可用方案

    前面讲的nginx负载均衡,是属于网络七层负载,今天讲另外一种负载均衡技术LVS,它是基于网络四层进行负载,性能很好,通常在大型项目中,我们会同时使用四层和七层负载. 一.LVS简介 LVS是Linu ...

  2. linux双机热备软件 mysql_linux mysql双机热备

    linux mysql双机热备与win mysql双机热备略有不同,至少在win下面很快就OK. 本例使用的是mysql5.1.45编译安装 一.linux下热备修改/etc/my.cnf 具体修改如 ...

  3. docker实现MySQL主主互备(主主双机热备)

    文章目录 环境配置 主主互备(主主双机热备) 主MySQL服务器A 主MySQL服务器B 配置主MySQL服务器A和主MySQL服务器B 环境配置 本地操作系统:Win10 虚拟机的操作系统:Cent ...

  4. 【MySQL系列】单机热备(主从结构)和双机热备介绍和使用

    Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份的数据库中.实现mysql数据库的热 ...

  5. linux mysql 5.7 双机热备_2017年5月5日 星红桉liunx动手实践mysql 主主双机热备

    第一步:安装mysql 可参考http://www.runoob.com/mysql/mysql-install.html 心得: rpm -ivh mysql-community-common-5. ...

  6. mysql双机热备数据库_MySQL 数据库双机热备方案

    标签: 转载:http://www.microcolor.cn/solutions/80.html 本手册主要介绍通过使用 MicroColor ServHAMirror/Cluster 软件在Win ...

  7. 双机热备 ip地址_SBC双机热备方案

    概述 随着通信全IP化的进程,现代企业中基于IP的语音.视频.会议.融合通信已广泛应用,同时企业通信也面临着新挑战,包括安全攻击.跨网NAT穿越以及业务稳定运行,高可靠方案尤为重要,因此在组网中部署S ...

  8. mysql双机互备linux成功的_配置MySQL双机热备 - Linux服务器MySQL双机热备份试验_数据库技术_Linux公社-Linux系统门户网站...

    二.配置MySQL双机热备 传统模式都是采用MySQL双机互备,至于双机热备我搜索了大量的精华帖子都没有发现安装配置文档.故我的一个想法产生了:当建立新的数据库时,默认会建立到/usr/local/m ...

  9. 双机热备_什么是双机热备?

    说到双机热备也许很多人都不是很了解,但是对于技术管理人员来说这是十分常见的.当业务系统非常重要,不允许出现中断或故障,往往就需要用到双机热备.以添添呼呼叫中心系统为例,我们为了保障客户在使用系统的时候 ...

最新文章

  1. Linux系统介绍(二)文件系统结构
  2. 1.17.Flink 并行度详解(Parallel)、TaskManager与Slot、Operator Level、Execution Environment Level、Client Level等
  3. 阿里开源Canal--①简介
  4. 前端为什么要使用组件化的思想,通过一个实例来分析
  5. C#中如何创建文件夹,复制文件夹,删除文件夹的方法
  6. 问题 B: 算术基本运算 山东科技大学 oj c语言
  7. nginx 1.12基础知识
  8. vb中线性拟合_#vb调用excel线性拟合#如何在excle表格中做线性回归分析
  9. 矩阵基础11- 广义逆矩阵及应用
  10. 纽迪瑞科技入选快公司FastCompany最具创新力榜单:科技与制造TOP30
  11. python输入直角三角形两条直角边、输出斜边长_python直角三角形的两个直角边、求斜边_直角三角形斜边公式计算器 两个直角边边长的平方加起来等......
  12. 为什么有些公司不招大龄程序员?
  13. 配置JDK、Tomcat环境、DNK环境
  14. Tesseract-OCR5.0软件安装和语言包安装(Windows系统)
  15. 硬件加速 setlayertype
  16. win7文件服务器代码,win7搭建文件服务器
  17. 鸿鹄系统和鸿蒙系统区别,荣耀智慧屏正式发布 鸿蒙系统+鸿鹄818芯片 售价3799元起...
  18. win下apache2.4 支持php8.0
  19. Ubuntu下编译OpenHarmony
  20. 动力节点【CRM客户管理系统】笔记1.简介、技术架构、软件开发生命周期、CRM核心业务介绍

热门文章

  1. 用ps做个一寸的照片
  2. 基于Python+MySQL的书店销售管理管理子系统设计
  3. 苹果手机壳_外观防护兼具,5款时尚简约苹果XS Max手机壳精选
  4. Cartov for Mac 1.0.2 无尽旅图
  5. python怎么定义未知数_码如其人,同学你能写一手漂亮的Python函数吗
  6. 力扣(145.102)补9.5
  7. 查找最相似的英文句子
  8. 《应对焦虑》学习总结
  9. LLVM IR转CFG
  10. Alibaba Cloud Linux版本linux下mysql8.0安装