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_1state MASTER                    # 表示该实例的角色状态,有MASTER和BACKUP两种主备状态interface eth0                  # 对外提供服务的网络接口,注意修改为自己的网卡名称,如 ens33,eth0,eth1virtual_router_id 51    # 虚拟路由ID标识,主备服务器配置中相同实例的ID必须一致priority 100                    # priority表示实例优先级,数字越大,优先级越高。master 的优先级必须大于 backupadvert_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_1state BACKUP                    # 表示该实例的角色状态,有MASTER和BACKUP两种主备状态interface eth0                  # 对外提供服务的网络接口,注意修改为自己的网卡名称,如 ens33,eth0,eth1virtual_router_id 51    # 虚拟路由ID标识,主备服务器配置中相同实例的ID必须一致priority 99                     # priority表示实例优先级,数字越大,优先级越高。master 的优先级必须大于 backupadvert_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 ];thenexit 1
elsenginx
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.mzph.cn/news/208263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四招打造完美分层自动化测试框架,让测试更高效!

写在前面 我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬。 来看下面一段代码: 具体表现如下: driver对象在测试类中显示 定位元素的value值在测试类中显示 定位元素…

Navicat 技术指引 | 适用于 GaussDB 分布式的用户/权限功能

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…

干货:软文推广中的关键词类别有哪些?

软文推广如果想要增加文案曝光率,seo是其主要的传播方式之一,因而好的关键词十分重要,这里的关键词指得是针对搜索引擎而言,由用户输入搜索引擎框中的提示性文字,只要关键词设置得好,软文就能通过搜索引擎精…

因为 postman环境变量全局变量设置好兄弟被公司优化了!

postman环境变量、全局变量设置 在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不 同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接 口测试用例较多,那么修改会非常费力&…

springboot(ssm大学生志愿者管理系统 志愿者管理平台 Java系统

springboot(ssm大学生志愿者管理系统 志愿者管理平台 Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&#xff…

Python与ArcGIS系列(十五)根据距离抓取字段

目录 0 简述1 实例需求2 arcpy开发脚本0 简述 在处理gis数据的时候,会遇到这种需求:将一个图层与另一个图层中相近的要素进行字段赋值。本篇将介绍如何利用arcpy及arcgis的工具箱实现这个功能。 1 实例需求 为了介绍这个功能的实现,我们需要有一个特定的功能需求。在这里选…

视频号小店怎么选品?选品技巧及思维,教程如下!

我是电商珠珠 开通视频号小店后,除了定类目之外,最终的就是选品了。 很多人不知道怎么选品,特别是新手小白,做起来比较难一些。店铺也会很少有流量进入,没有流量曝光的话,店铺的销量就更不用提了。 我做…

L1-019:谁先倒

题目描述 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下…

【Android】Java NIO(New I/O)的`Selector`类来实现非阻塞的Socket监听

如果你不想使用循环来监听客户端的连接和数据,你可以使用Java NIO(New I/O)的Selector类来实现非阻塞的Socket监听。Selector类提供了一种选择一组已经就绪的通道的机制,这样你就不需要使用循环来等待连接和数据。 以下是使用Sel…

Axure网页端高复用组件库, 下拉菜单文件上传穿梭框日期城市选择器

作品说明 组件数量:共 11 套 兼容软件:Axure RP 9/10,不支持低版本 应用领域:web端原型设计、桌面端原型设计 作品特色 本作品为「web端组件库」,高保真高交互 (带仿真功能效果);运用了动态面板、中继…

使用pytorch查看中间层特征矩阵以及卷积核参数

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 1和4是之前讲过的alexnet和resnet模型 2是分析中间层特征矩阵的脚本 3是查看卷积核参数的脚本 1设置预处理方法 和图像训练的时候用的预处理方法保持一致 2实例化模型 3载入之前的模型参数 4载入…

小白理解GPT的“微调“(fine-tuning)

对于GPT-3.5,我们实际上并不能在OpenAI的服务器上直接训练它。OpenAI的模型通常是预训练好的,也就是说,它们已经在大量的语料上进行过训练,学习到了语言的基本规则和模式。 然而,OpenAI提供了一种叫做"微调"…

Pandas操作数据库

一:Pandas读取数据库数据 二:Pandas读取海量数据 三:Pandas向数据库存数据 四:Pandas写入海量数据

理想中的PC端剪切板工具,应该有哪些功能?

在日常工作中,我们经常需要复制和粘贴文本、图片和链接。 首先,这款剪切板功能应该在不使用时不显示窗口,以避免干扰我们的工作。它应该在后台静默记录剪切板历史,以便我们可以随时查看之前的记录。 其次,当我们需要…

A类中创建posix线程,线程间如何通信

如果你在类A中使用pthread_create创建了线程B,而线程B需要与类A进行通信,你可以考虑以下两种方法: 使用回调函数: 在创建线程B时,通过参数传递一个回调函数,该回调函数可以在线程B中执行,并在完…

上海宝山区12月8日发生一起火灾 火势已扑灭 揭秘AI如何“救援”

在这个冬日的早晨,上海宝山区的居民经历了一场惊心动魄的火灾。幸运的是,火势很快就被扑灭了。但这起事件不禁让我们思考:如何更有效地预防和应对这样的紧急情况? 这时候,就不得不提到北京富维图像公司的一项创新技术—…

我的隐私计算学习——国密SM2和国密SM4算法

此篇是我笔记目录里的安全保护技术(七),前篇可见: 隐私计算安全保护技术(一):我的隐私计算学习——混淆电路-CSDN博客 隐私计算安全保护技术(二):我的隐私计…

【JavaWeb】获取WebServlet注解的对象

import javax.servlet.annotation.WebServlet; public class ReflectAnnotation {public static void main(String[] args) throws Exception{//获取servlet类的webServlet的注解内容Class<?>welcomeServletClassClass.forName("SubmitScoreServlet");//判断有…

Spring 装配Bean详解

一、简介 ​ Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。Spring具有非常大的灵活性&#xff0c;它提供了三种主要的装配机制&#xff1a; 在XML中进行显示配置&#xff1b;在Java中进行显示配置&#xff1b;隐式的bean发现机制和自动装配。 二、…

代码随想录 62. 不同路径

题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; 示例…