企业架构LNMP学习笔记26

news2024/10/6 12:28:46

通过Keepalived可以实现主服务器整机不可用,实现VIP的切换。保证用户可以通过VIP进行访问服务。但是实际上,往往不是服务器整机不可用,只是对应的服务或者软件不可用。

比如说,nginx提供的web的服务,nginx进程关闭。

就需要检测当nginx不可用的时,就切换VIP。

实现过程分析:

VIP实际上由Keepalived进行绑定的,所以当nginx服务不可用时,就关闭当前机器的Keepalive即可,释放VIP。进而绑定到其他备用服务器。

1)编写服务器检测脚本,实现检测nginx是否可用,不可用则关闭当前所在主机的Keepalived。

2)在Keepalived配置中调用检测服务脚本。

Nginx服务可用检测脚本:

主备服务器都要实现此脚本。

1)编写测试脚本,赋予执行权限:

[root@server01 keepalived]# cat check_nginx.sh
#!/bin/bash

nginx_status=`ps -C nginx --no-header | wc -l`

if [ $nginx_status -eq 0 ]; then
    systemctl stop keepalived;
fi

赋予权限:

[root@server01 keepalived]# chmod +x check_nginx.sh

测试下脚本可用性:

启动nginx和Keepalived

关闭nginx,执行脚本,查看Keepalived是否关闭。

[root@server01 keepalived]# ps aux |grep nginx
root        746  0.0  0.0  46192  1268 ?        Ss   08:39   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www         748  0.0  0.0  46616  2012 ?        S    08:39   0:00 nginx: worker process
www         749  0.0  0.0  46616  2012 ?        S    08:39   0:00 nginx: worker process
root       1356  0.0  0.0 112816   972 pts/0    S+   08:59   0:00 grep --color=auto nginx
[root@server01 keepalived]#
[root@server01 keepalived]# kill -TERM 746
[root@server01 keepalived]# ps aux |grep nginx
root       1360  0.0  0.0 112812   972 pts/0    R+   09:00   0:00 grep --color=auto nginx

执行下脚本,再看keepalived的状态。 

然后VIP已经切换到server03这台服务器上了。

同样,我们也要在server03这台服务器上添加这个脚本。

scp check_nginx.sh 192.168.17.109:/etc/keepalived/

在多台服务器中配置Keepalived定时触发检测nginx脚本模块:

 

在这个过程中,我纠正了一个nginx的一个配置问题:

然后我就使用systemctl status nginx就能正常工作了。不会显示错误信息。

实现web服务器的高可用。

以上案例已经实现了,服务不可用VIP切换到可用服务器。

现在需求用户的服务是连续不间断的,故用户需要通过VIP进行访问。

1)解析域名到VIP;

2)模拟用户访问;

在测试的过程中,发现无法ping 通VIP。通过百度。看到可以将vrrp_strict进行注释即可。当然还有两种配置方法。

然后重启keepalived进程。systemctl restart keepalived。

然后再进行ping测试,发现可以ping通VIP。

另外,我们也可以写nginx自愈的脚本编写。

总结:

具有故障自动恢复能力的可用性。

解析域名,切换到可用的服务器上。web的高可用就实现了。

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

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

相关文章

什么是JVM常用调优策略?分别有哪些?

目录 一、JVM调优 二、堆内存大小调整 三、垃圾回收器调优 四、线程池调优 一、JVM调优 Java虚拟机(JVM)的调优主要是为了提高应用程序的性能,包括提高应用程序的响应速度和吞吐量。以下是一些常用的JVM调优策略: 堆内存大小…

【系统设计系列】数据库

系统设计系列初衷 System Design Primer: 英文文档 GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 中文版: https://github.com/donnemarti…

8路编码器脉冲计数器或16路DI高速计数器,Modbus RTU模块 YL69-485 可识别正反转

特点: ● 编码器解码转换成标准Modbus RTU协议 ● 可用作编码器计数器或者转速测量 ● 支持8个编码器同时计数,可识别正反转 ● 也可以设置作为16路独立DI高速计数器 ● 编码器计数值支持断电自动保存 ● DI输入和电源之间3000V隔离 ● 通过RS-4…

奇舞周刊第 505 期:实践指南-前端性能提升 270%!

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 实践指南-前端性能提升 270% 当我们疲于开发一个接一个的需求时,很容易忘记去关注网站的性能,到了某一个节点,猛地发现,随着越来越多…

为什么Python在数据分析行业备受欢迎?优势在哪?

在今天的数据驱动世界中,数据分析已经成为各行业的核心工作之一。数据分析的应用场景非常广泛,例如金融、医疗、教育、电商、社交等领域。数据分析师是一种专门从事数据分析的职业,他们需要掌握一定的编程技能和统计知识,以及对数…

JavaScript实现广告倒计时和跳过广告

倒计时和跳过广告 最近打开手机上的app,映入眼帘的都是一个几秒的广告,带有倒计时,当然如果不喜欢的话可以点击跳过,跳过广告其实质应该就是关闭广告。以前用JavaScript做过一个定时关闭的广告,于是把代码完善了一下&…

作为数据分析师,如何能把AI工具和数据分析工作更好的结合?

​ 做为数据分析师,如果能够学会把AI工具应用到实际的数据分析工作当中,可以把一些重复性很强的工作交给AI来完成,这样数据分析师在提升效率的过程中能够去有更多的时间考虑具有创意的工作。 数据分析师,在使用AI工具完成数据分…

Android相机-架构3

目录 引言 1. Android相机的整体架构 2. 相机 HAL 2.1 AIDL相机HAL 2.2 相机 HAL3 功能 3. HAL子系统 3.1 请求 3.2 HAL和相机子系统 3.2.1 相机的管道 3.2.2 使用 Android Camera API 的步骤 3.2.3 HAL 操作摘要 3.3 启动和预期操作顺序 3.3.1 枚举、打开相机设备…

Java(二)数据类型与变量以及运算符

数据类型与变量以及运算符 二、数据类型与变量(重要)2.数据类型2.1 基本数据类型 1.变量与常量1.1常量(字面常量)1.2变量数据类型小总结 三、运算符1.运算符号(重要)1.1计算运算符1.2增量运算符1.3 自增或自…

AUTOSARCAN-Tp协议

目录 一.单帧、首帧、连续帧、流控帧 单帧传输 SF单帧: 多帧传输 FF(首帧): CF(连续帧): FC(流控帧): 一.单帧、首帧、连续帧、流控帧 CAN诊断由发送端…

数据库服务器是什么意思?数据库服务器有哪些?

数据库服务器是什么意思?现在市场上有很多的服务器的类型,比如数据库服务器,但是很多人对数据库服务器是什么意思?数据库服务器有哪些并不是很熟悉,那么,聚名企服为您详解一下。 一:数据库服务器是什么意思 数据库服…

Vue框架--Vue列表渲染(2)

1.列表过滤 所谓的列表过滤其实就是对数据做一个筛选。实现这一个列表过滤代码可以有两种方式来做: 使用watch监视来实现,如下: 使用计算属性conputed实现,代码如下所示:这里适合使用计算属性实现。

ArcGIS 10.7安装教程!

软件介绍:ArcGIS是一款专业的电子地图信息编辑和开发软件,提供一种快速并且使用简单的方式浏览地理信息,无论是2D还是3D的信息。软件内置多种编辑工具,可以轻松的完成地图生产全过程,为地图分析和处理提供了新的解决方…

Java从入门到精通-数组(二)

4.数组的基本操作 数组的基本操作包括遍历数组、填充替换数组元素、对数组进行排序、复制数组以及查询数组中的元素。 • 4.1 遍历数组 遍历数组是访问数组中所有元素的过程,通常使用循环完成。 使用 for 循环遍历数组: int[] numbers {1, 2, 3, 4…

vue 部署到本机IIS 部署 SPA 应用

安装 URL Rewrite Works With: IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10 URL Rewrite : The Official Microsoft IIS Site 目前公司的 Web 项目是 SPA 应用,采用前后端分离开发,所以有时也会倒腾 Vue 框架。 在 Devops 实践中,容器部署成…

C++11新特性④ | 模板类std::function和标准库函数std::bind

目录 1、引言 2、std::function函数模板类 3、std::bind标准库函数 4、std::bind和std::function配合使用 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/12427258…

Kafka集群与消息可靠性

Kafka集群搭建实战 使用两台Linux服务器:一台192.68.10.7 一台192.168.10.8 192.68.10.7 的配置信息修改 192.168.10.8的配置信息修改 Kafka集群原理 成员关系与控制器 控制器其实就是一个broker, 只不过它除了具有一般 broker的功能之外, 还负责分区首领的选举…

如何优化网站SEO(提高排名和流量的3个小知识)

百度百科SEO简介:搜索引擎优化(SearchEngineOptimization)是指通过对网站内部结构、外部链接以及页面内容等进行调整,从而使其在搜索引擎中排名更靠前,从而带来更多的流量和曝光。SEO是数字营销中的重要一环&#xff0…

【web开发】4、JavaScript与jQuery

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、JavaScript与jQuery二、JavaScript常用的基本功能1.插入位置2.注释3.变量4.数组5.滚动字符 三、jQuery常用的基本功能1.引入jQuery2.寻找标签3.val、text、appe…

Yolov8魔术师:卷积变体大作战,涨点创新对比实验,提供CVPR2023、ICCV2023等改进方案

💡💡💡本文独家改进:提供各种卷积变体DCNV3、DCNV2、ODConv、SCConv、PConv、DynamicSnakeConvolution、DAT,引入CVPR2023、ICCV2023等改进方案,为Yolov8创新保驾护航,提供各种科研对比实验 &am…