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

keepalived 高可用主备

实验采用两台centos9 nginx+keepalived 一共两台,进行主备切换

主服务器 192.168.100.105 备用 192.168.100.106 虚拟ip 192.168.100.200

安装

dnf install vim wget curl vim net-tools nginx keepalived

Undefined

nginx 配置需要更改为虚拟ip

  server {
        listen       80;
        listen       [::]:80;
        server_name  192.168.100.200;

CSS

两台机器均已经配置好监听同ip

keepalived

master配置

! Configuration File for keepalived             # 这一行为注释
global_defs { 
        router_id nginx01       # router_id 机器标识,通常使用 hostname,相对具有唯一性,和备机区分开,不能使用同一个标识
}


vrrp_instance VI_1 {            # 定义一个vrrp_install实例,名称为VI_1
        state MASTER                    # 表示该实例的角色状态,有MASTER和BACKUP两种主备状态
        interface eth0                  # 对外提供服务的网络接口,注意修改为自己的网卡名称,如 ens33,eth0,eth1
        virtual_router_id 51    # 虚拟路由ID标识,主备服务器配置中相同实例的ID必须一致
        priority 100                    # priority表示实例优先级,数字越大,优先级越高。master 的优先级必须大于 backup
        advert_int 1                    # 设定 master 与 backup 负载均衡器之间同步检查的时间间隔,默认是秒

        authentication {                # 权限认证配置
                auth_type PASS          # 主要有 PASS 和 AH 两种
                auth_pass 1111          # 验证密码,同一个 vrrp_instance 下 MASTER 和 BACKUP 密码必须相同
        }

        virtual_ipaddress {
                192.168.100.200         # 虚拟IP地址;可以配置多个IP,每个IP占一行。注意,这里的IP就是在工作中访问 zabbix server 需要和域名绑定的ip
        }



}

GraphQL

备用服务器配置

! Configuration File for keepalived             # 这一行为注释
global_defs { 
        router_id nginx02       # router_id 机器标识,通常使用 hostname,相对具有唯一性,和主机区分开,不能使用同一个标识
}
vrrp_instance VI_1 {            # 定义一个vrrp_install实例,名称为VI_1
        state BACKUP                    # 表示该实例的角色状态,有MASTER和BACKUP两种主备状态
        interface eth0                  # 对外提供服务的网络接口,注意修改为自己的网卡名称,如 ens33,eth0,eth1
        virtual_router_id 51    # 虚拟路由ID标识,主备服务器配置中相同实例的ID必须一致
        priority 99                     # priority表示实例优先级,数字越大,优先级越高。master 的优先级必须大于 backup
        advert_int 1                    # 设定 master 与 backup 负载均衡器之间同步检查的时间间隔,默认是秒

        authentication {                # 权限认证配置
                auth_type PASS          # 主要有 PASS 和 AH 两种
                auth_pass 1111          # 验证密码,同一个 vrrp_instance 下 MASTER 和 BACKUP 密码必须相同
        }

        virtual_ipaddress {
                192.168.100.200         # 虚拟IP地址;可以配置多个IP,每个IP占一行。注意,这里的IP就是在工作中访问 zabbix server 需要和域名绑定的ip
        }
}

GraphQL

直接访问192.168.100.200

这里主服务掉线vip后会自动切换到备用服务器上去了

keep宕机后 会自动切换但是nginx宕机他不会切换 需要用到脚本让他自己关闭

#! /bin/bash
# 当 nginx 服务 down 掉之后,通过 keepalived 检查,确认没有服务重新启动 nginx
nginx_server=`ps -C nginx --no-header | wc -l`

if [ $nginx_server -gt 0 ];then
    exit 1
else
	nginx
fi

Bash

keep 里面要加入

vrrp_script chk_nginx {		# 定义一个检测脚本,在global_defs之外配置
  script "/etc/keepalived/check_nginx.sh"	# 自己写的监测脚本
  interval 2	# 每2s监测一次
  weight 10		# 该参数用于指定当监测失效时,该设备的优先级会减少的值,该值为负表示减少
  fall 2        # 尝试两次都成功才成功
  rise 2        # 尝试两次都失败才失败
}

http://www.kler.cn/news/162599.html

相关文章:

  • python基于轻量级GhostNet模型开发构建23种常见中草药图像识别系统
  • swagger入门
  • MySQL视图介绍与实验练习
  • QT 中 多线程(备查)
  • Spring基于注解开发
  • 剪映最新版的4.9,主要更新的功能(于2023年12月2日发布)
  • 3D Web轻量引擎HOOPS Communicator如何实现对大模型的渲染支持?
  • Java IO流(一) 基本知识
  • 你知道模拟养成游戏如何开发吗?
  • Gerber文件使用详解
  • LeetCode Hot100 17.电话号码的字母组合
  • MySQL高级--01_1--数据库缓冲池(buffer pool)
  • 【广州华锐互动VRAR】VR戒毒科普宣传系统有效提高戒毒成功率
  • 反序列化 [网鼎杯 2020 朱雀组]phpweb 1
  • A : DS静态查找之顺序查找
  • 视频后期特效处理软件 Motion 5 mac中文版
  • 使用java线程实现亿级数据处理
  • 【Python】pptx文件转pdf
  • 优秀案例 | 元宇宙双语财经科技主播“舒望”主持首届粤港澳大湾区元宇宙国际传播论坛
  • 多目标追踪评价指标
  • Android Kotlin 泛型:强大的类型抽象和重用利器
  • 智能优化算法应用:基于战争策略算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 维基百科文章爬虫和聚类:高级聚类和可视化
  • 人工智能原理复习--搜索策略(一)
  • vue在哪个生命周期内调用异步请求
  • React setState()的两种书写方法对比
  • AIGC: 关于ChatGPT中实现一个聊天机器人
  • 触控板绘画工具Inklet mac功能介绍
  • selenium 解决 id定位、class定位中,属性值带空格的解决办法
  • 信息学奥赛一本通1002:输出第二个整数