双击热备方案实现(全)

news2024/11/26 16:24:50

双击热备是应用与服务器的一种解决方案,其构造思想是主机和从机通过TCP/IP网络连接,正常情况下主机处于工作状态,从机处于监视状态,一旦从机发现主机异常,从机将会在很短的时间内代替主机。完全实现主机的功能。

要想实现双击热备方案,就需要用到keepalived软件。

1.Keepalived介绍

Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。

Keepalived是Linux下一个轻量级别的高可用解决方案。使用的是VRP协议,VRP协议将两台或多台设备组成一个虚拟路由组,在这个虚拟路由组中会存在一个MASTER书点以及多个BACKUP节点,在MASTER节点上会绑定一个虚拟VIP虚拟VIP),作为客户机只需要使用这个VIP来访问后端的服务器即可。虚拟IP的使用和真是P其实没有区别。当MASTER节点宕机以后,此时会从多个BACKUP节点中选择一个节点作为MASTER节点,而只有MASTER节点才可以绑定对应的VP,此时VIP就会重新绑定到新的MASTER节点上,这样就实现了ip的飘逸。而整个过程对客户机是透明的,客户机是感知不到ip飘逸的整个过程。

2.实操演示

2.1环境说明

本次我们使用两个虚拟机来演示一下借助于keepalived来实现双机热备。具体的环境说明如下所示:

2.2nginx安装

分别安装nginx

查看正在运行的进程并过滤出包含nginx关键字的进程的命令 :

ps -ef | grep nginx

查看防火墙状态:

systemctl status firewalld.service

如果状态为running

关闭防火墙:

systemctl stop firewalld.service

浏览器输入主从节点的IP查看nginx页面

主节点:

从节点:

2.3keppalived安装

主节点配置文件内容:

#定义虚拟网卡需要和当前服务器(192.168.35.xxx)绑定的网卡相对应

#定义组vriid,主从节点id配置相同

#adver_int : 1 每一秒发送一次心跳检查包

#主从节点之间的认证是通过密码认证,主从节点配置必须相同

#设置虚拟ip:用户去访问的ip,主从节点需要一致

备份节点配置文件内容:

配置完毕后启动Keepalived服务:

(先启动主节点,在启动从节点)

启动完成之后,查看ens33网卡ip地址是否新增了前面所配置的虚拟ip地址(110)

此时在主节点上查看查看ens33网卡ip地址时,可查看新增的110ip,从节点不显示110ip。

主节点:

从节点:

2.4 进行测试

1、使用虚拟ip访问nginx服务:http://192.168.136.1102、关闭主节点上的keepalived软件,查看ip是否可以自动飘逸

2.当把主节点(150)的keepalived服务停止时

停止后查看主节点(150)ens33网卡ip地址时,IP已发生飘逸变成150的IP

查看从节点(151)时,IP已经变成110

3.当把主节点(150)的keepalived服务启动时

启动后查看主节点(150)ens33网卡ip地址时,IP已发生飘逸变成110的IP

查看从节点(151)时,IP已经不显示虚拟IP

3.编写检测脚本

在刚才我们是通过手动关闭keepalived软件然后让ip飘逸到从节点上了,大家试想一下如果这个主机上的keepalived软件没有出现问题,而是nginx出现了问题,此时ip开会自动飘逸吗?肯定是不会的,那么此时用户使用虚拟ip访问的还是有问题的nginx,此时就无法完成请求访问。

虚拟IP(110)访问失败,因为目前110绑定的是主节点150,当访问虚拟IP110时,实际上访问的是主节点150的nginx,此时主节点150的nginx挂了,nginx访问失败。

解决该问题的思路:就是编写一个检测nginx服务的脚本,然后让keepalived每隔一段时间执行一次,一旦检测到了nginx出现问题了以后,就将keepalived进程关闭掉,keepalived进程关闭后,IP会进行漂移到另一台服务器。

检测脚本(check_nginx.sh):

(反引号)判断nginx的结果,当结果A=0时,标识nginx没启动,此时就将keepalived进程关闭掉。

设置可执行权限:

可将此脚本放在keepalived配置文件的相同目录

脚本执行命令:sh /路径/check_nginx.sh

测试

当执行脚本之后,主节点150 ens33网卡ip地址没有虚拟IP 110 ,此时访问110 时实际访问的是另一台服务器(151)的nginx

现在就能解决该问题,但是以上脚本时手动执行的,不现实,下面将修改配置,自动执行检测脚本。

在原来主节点的keepalived配置文件加上如下配置

注意:如果发现检测脚本不执行,此时就需要关闭linux中安全检测模块。

测试

1.启动主节点(150)的nginx,在启动主节点(150)的keepalived,此时查看主节点的 ens33网卡ip地址,发现虚拟IP110已经漂移回来了。

此时访问虚拟IP 110时,实际访问的是主节点 150的nginx

2.主动关闭主节点上的nginx

再次访问虚拟IP 110,此时实际访问的从节点151的nginx

至此,完整的双击热备解决方案得以解决!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1287278.html

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

相关文章

odoo15关于tree视图添加按钮说明

1、odoo15的tree已经可以像form一样直接添加header标签 2、选取具体数据后,按钮出现,只需要在按钮中添加具体功能即可,下面是一个继承 3、效果:

JVM之四种引用类型(五)

JVM 系列吊打面试官:说一下 Java 的四种引用类型 四种引种类型 1.强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是…

如何通过添加香港高防IP来防御攻击?

​  针对外贸建站,租用香港服务器,除了站长们较为关注的价格外,安全性也是至关重要的。香港服务器在使用中可能会遭受到常见的 DDoS 网络攻击,而在 DDoS 防护这一块,您可以使用香港 DDoS 高防 IP 和香港高防服务器来…

基于51单片机多功能时钟闹钟系统

**单片机设计介绍,基于51单片机多功能时钟闹钟系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的多功能时钟闹钟系统是一种基于单片机的电子设备,能够显示时间、设置闹钟、进行计时以及提…

解决方案:Mac 安装 pip

python3 --version 通过以下命令来下载pip: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py curl命令允许您指定一个直接下载链接。使用-o选项来设置下载文件的名称。 通过运行以下命令安装下载的包: python3 get-pip.py

POJ 3233 Matrix Power Series 动态规划(矩阵的幂)

一、题目大意 给出一个矩阵A, 输出矩阵B的每一项对M取余数的值。 二、解题思路 以二维矩阵为例,首先计算K2的情况,我们设结果矩阵为B 有如下表达式 那么不难看出,需要的矩阵其实就是以下的两个矩阵相乘后的左上角的N*N个 然后…

Linux中的UDEV机制与守护进程

Linux中的UDEV守护进程 udev简介守护进程守护进程概念守护进程程序设计守护进程的应用守护进程和后台进程的区别 UDEV的配置文件自动挂载U盘 udev简介 udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设…

3.4 路由器的DHCP配置

实验3.4 路由器的DHCP配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施(一)配置基于接口地址池的DHCP1.交换机的基本配置2.路由器的基本配置3.开启路由器的DHCP服务器功能4.配置路由器接口的DHCP功能5.设置计算机使用DHCP方式获取IP地…

前端又出新轮子Nue.js,但还是低代码更香!

前言 别TM卷了!!! 自从前后端分离以来,前端前端的车轮滚滚向前,轮子造的越来越圆。每个人都在适应这个轮子的节奏,稍微不注意就会被甩出车轮之外。 调侃归调侃,既然口子已经开了,…

Java操作Excel之 POI介绍和入门

POI是Apache 提供的一个开源的Java API,用于操作Microsoft文档格式,如Excel、Word和PowerPoint等。POI是Java中处理Microsoft文档最受欢迎的库。 截至2023/12, 最新版本时 POI 5.2.5。 JDK版本兼容 POI版本JDK版本4.0及之上版本> 1.83.…

游戏测试 vs 软件测试:你知道它们的真正区别吗?

游戏测试和软件测试有什么区别?10大测试点对比! 针对手游而言,游戏测试的本质是APP,所以不少手游的测试方式与APP测试异曲同工,然而也有所不同。APP更多的是具有一种工具,一款APP好不好用不重要&#xff0…

【译】DispatcherServlet

1.1. DispatcherServlet 见 Reactive 技术栈中的等效内容 Spring MVC和其他许多Web框架一样,是围绕前端控制器模式设计的,其中一个中央 Servlet,即 DispatcherServlet,为请求处理提供了一个共享算法,而实际工作则由可…

Unity 网格布局控件-Grid Layout Group

Unity 网格布局控件-Grid Layout Group是Unity中的UGUI控件,用于在 UI 中创建网格布局, 它的作用是:自动将子对象排列成网格,即我们可以通过该组件对子对象按行和列的形式排列,根据指定的约束条件自动调整它们的大小和…

【网络安全】红蓝对抗之企业互联网安全防护

01 什么是“红蓝对抗”? “红蓝对抗”最早起源于古罗马军队,在沙盘中用红色和蓝色来代表敌人和自己,他们认为蓝色代表勇敢和忠诚,红色代表血腥和暴力,所以选择用蓝色代表自己。 在中国,由于传统习俗与文化…

卡码网语言基础课 | 19. 洗盘子

目录 一、 栈的基本概念 二、 栈的操作 2.1 引入头文件 2.2 创建栈 2.3 栈的基本认识 三、 解答 通过本次练习,将学习到以下 C知识点: 栈的基本概念(空栈、栈顶、栈底)和特点(先入后出)入栈、出栈、获取…

高性能网络编程 - 白话TCP 三次握手过程

文章目录 概述TCP协议头的格式TCP Finite State Machine (FSM) 状态机三次握手如何在 Linux 系统中查看 TCP 状态 概述 每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。 我们需要知道 TCP在网络OSI的七层模型中的第四层——Transport层 -----------…

2023年1月18日 Go生态洞察:开发者的声音与Go的进化

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

算法--最短路

这里写目录标题 xmind单源最短路简介所有边权都是正朴素的Dijkstra算法思想例子题解 堆优化版的Dijkstra算法 存在负数权Bellman-Ford算法思想例子题解 多源汇最短路简介 xmind 上述中,朴素Dijkstra算法适用于稠密图 其他用堆优化版 而SPFA算法一般都比Bellman-For…

AIGC发展史

1 AIGC概况 1.1 AIGC定义 AIGC(AI Generated Content)是指利用人工智能技术生成的内容。它也被认为是继PGC,UGC之后的新型内容生产方式,AI绘画、AI写作等都属于AIGC的具体形式。2022年AIGC发展速度惊人,迭代速度更是呈现指数级发…

Spring boot -- 学习HttpMessageConverter

文章目录 1. Json格式数据获取2. 为什么返回Json格式的数据2.1 注解SpringBootAppliaction2.1.1 SpringBootConfiguration2.1.2 ComponentScan2.1.3 EnableAutoConfiguration2.1.3.1 HttpMessageConvertersAutoConfiguration2.1.3.2 WebMvcAutoConfiguration 2.2 注解RestContr…