Nginx+keepalived 脚本安装主从双机热备自动切换解决方案

搭建Nginx高可用集群(keepalived+双机热备) 一、Nginx高可用 首先了解一下什么是高可用,高可用是分布式系统架构中必须考虑的因素。 我们都知道,使用nginx的反向代理和负载均衡可以解决tomcat等web容器的单点故障以及高并发等问题。 反向代理是指以代理服务器来接收浏览器的请求,然后再将请求转发到内网的服务器,然后再将从服务器上得到的结果返回给客户端。负载均衡就是要解决一个web服务器压力过大的问题,此时可以通过多个web服务器根据不同的算法将并发过来的请求分配到多个服务器上,从而减轻单个服务器压力过大的问题。 这样的话,当一台web服 阅读详情

Nginx+keepalived主从双机热备自动切换解决方案

测试环境如下:

系统:Ceentos 6.4 64位

主nginx服务器:192.168.122.5

备nginx服务器:192.168.122.6

VIP:192.168.122.15

一、Nginx+keepalived 安装—脚本安装
--------------------- #
## Nginx_install
# -------------------------------------------------------- #
# Nginx installation
#CURRENT_PATH=$(pwd)
for i in $(rpm -q gcc gcc-c++ kernel-devel openssl-devel zlib-devel popt-devel popt-static libnl-devel wget make |grep 'not installed' | awk '{print $2}')
do
yum -y install $i
done
[ -d /root/software ]
[ "$?" != 0 ] && mkdir /root/software
cd /root/software
[ !-e pcre-8.33.tar.gz ] && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
tar -zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure
make && make install
echo $? || [ $? != 0] || echo" installation pcrefailed" || exit 1
cd /root/software
[ ! -e nginx-1.2.9.tar.gz ] && wget http://nginx.org/download/nginx-1.2.9.tar.gz
tar -zxvf nginx-1.2.9.tar.gz
cd nginx-1.2.9
./configure--prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module--with-http_gzip_static_module
make && make install
echo $? || [ $? != 0] || echo" installationnginxfailed" || exit 1
# -------------------------------------------------------- #
## Keepalived_intsall
# -------------------------------------------------------- #
# Keepalived installation
cd /root/softwarae
[ ! -e keepalived-1.2.4.tar.gz ] &&wget http://www.keepalived.org/software/keepalived-1.2.4.tar.gz
tar -zxvf keepalived-1.2.4.tar.gz
cd keepalived-1.2.4
ln -s /usr/src/kernels/$(uname -r) /usr/src/kernels/linux
./configure --prefix=/usr--bindir=/usr/bin--sbindir=/usr/bin--libexecdir=/usr/libexec --localstatedir=/var --libdir=/lib64--infodir=/usr/share/info--sysconfdir=/etc --mandir=/usr/local/share/man--with-kernel-dir=/usr/src/kernels/linux
make && make install
echo $? || [ $? != 0] || print " installation keepalivedfailed" || exit 1
chkconfig --add keepalived
chkconfig --level 345 keepalived on
二、主Nginx 配置
[root@node5 conf]# mkdir -p /var/www/html
[root@node5 conf]# cat "192.168.122.5" > /var/www/html/index.html
[root@node5 conf]# vim nginx.conf

在这里插入图片描述

[root@node5 conf]# ../sbin/nginx -s reload
[root@node5 conf]# curl http://192.168.122.5
192.168.122.5

三、主Keepalived配置
[root@node6 conf]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
404060@qq.com
138162@139.com
}
notification_email_from 404060@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.keepalived.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass kuangling
}
track_script {
chk_nginx.keepalived
}
virtual_ipaddress {
192.168.122.15
}
}
四、备nginx配置
[root@node6 conf]# mkdir -p /var/www/html
[root@node6 conf]# cat "192.168.122.6" > /var/www/html/index.html
[root@node6 conf]# vim nginx.conf

在这里插入图片描述

[root@node6 conf]# ../sbin/nginx -s reload
[root@node6 conf]# curl http://192.168.122.6
192.168.122.6
五、备keepalived配置
[root@node6 conf]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
404060@qq.com
138162@139.com
}
notification_email_from 404060@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.keepalived.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass kuangling
}
track_script {
chk_nginx.keepalived
}
virtual_ipaddress {
192.168.122.15
}
}
六、分别在2台nginx服务器上添加检测脚本:
[root@node6 conf]# vim /etc/keepalived/chk_nginx.keepalived.sh
#!/bin/bash
# description:
# 定时查看Nginx是否存在,如果不存在则启动Nginx
# 如果启动失败,则停止keepalived
status=`ps -C nginx --no-header |wc -l`
if [ $status -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
[root@node6 conf]#chmod +x /etc/keepalived/chk_nginx.keepalived.sh
七、测试

分别在2台nginx上启动nginx和keepalived服务,然后分别用ip a 查看ip

Nginx 高可用架构实践:Keepalived 实现故障自动切换,Keepalived主备模式(双机热备),Keepalived互备模式(互为主备,互持 VIP) 本文介绍了利用Keepalived实现Nginx高可用的两种架构模式。主备模式使用1个虚拟IP,主节点提供服务,备节点监控待命;互备模式使用2个虚拟IP,两节点同时服务。Keepalived基于VRRP协议实现故障自动切换,通过vrrp_script监控Nginx状态。配置参数包括全局定义、健康检查脚本和VRRP实例设置,其中priority决定节点优先级,weight动态调整优先级。主备模式适合中小系统,互备模式适合高并发场景,确保服务持续可用。 阅读详情

相关推荐

深入解析:Nginx+Keepalived实现双机热备架构

在上期的内容中,我们详细讲解了Nginx 的负载均衡配置和高可用性方案,包括反向代理、健康检查、动态负载均衡等特性。然而,仅仅依赖单台 Nginx 的部署方案存在单点故障(Single Point of Failure, SPOF)的风险,一旦 Nginx 节点发生宕机,整个系统的访问将受到影响。为了解决这一问题,本期我们将深入探讨如何使用Nginx + Keepalived 实现双机热备,以增强系统的高可用性和可靠性。

喵手的博客 2277

Nginx从入门到实战(七):定时器动态切换nginx配置-实现网站自动启停

背景: 有些网络由于某种特殊需求,需要每日在指定时间内开放,在其余时间展示“系统正在维护中…”的页面。 基于类似需求,最好的当然是定时自动处理了,省去人工处理的麻烦; 一、整体思路 1、设计2个nginx.conf, 分别指向正式系统和维护系统路径; 2、编写切换nginx配置并重新加载nginx的脚本; 3、然后使用crontab定时器执行脚本,定时切换2个不同的nginx.conf; 二、具体实现 2.1 设计2个nginx.conf, 分别指向正式系统和维护系统路径。 注意: 这2个nginx.con

一掬净土 6695

双机脚本

NULL 博文链接:https://ayong2010.iteye.com/blog/937889

MySQL--整合Keepalived进行双机热备自动切换

本文介绍MySQL如何整合Keepalived进行双机热备自动切换。 为解决Mysql数据库单点问题,用两台MySQL数据库互为主备,双向replication。当一Master出现问题,则将Slave切换为Master继续工作。

IT利刃出鞘的博客 1564

nginx+keepalive主从 双机热备 + 自动切换解决方案

nginx+keepalive主从 双机热备 + 自动切换解决方案 就可实现负载均衡及高可用集群

告别环境配置噩梦:用Docker Desktop + WSL2在Windows上5分钟搞定vLLM运行环境

本文详细介绍了如何在Windows系统上使用Docker Desktop和WSL2快速搭建vLLM开发环境,5分钟内完成配置。通过容器化技术解决传统环境配置中的依赖冲突、环境污染等问题,提供一键复用的高效方案,特别适合AI开发者快速部署和测试vLLM框架。

weixin_28728495的博客 502

双机热备脚本

这个服务的脚本是在备机上跑的,主机ip是192.168.2.168,在主机上多添加一个ip:192.168.2.169每隔5秒钟去探测下对端机机器,ping 192.168.2.169,看是否ping的通,如果ping通了,则不管。#!/bin/bashmasterip_add=192.168.2.169masterip=192.168.2.168mfile=/r...

weixin_33989058的博客 338

多传感器融合SLAM指南:如何结合视觉与激光雷达提升建图精度

本文深入探讨了多传感器融合SLAM技术,详细解析了如何将视觉传感器与激光雷达(特别是3D激光雷达)进行深度融合以提升建图精度与鲁棒性。文章从传感器特性分析、数据同步标定、前端融合策略(松耦合与紧耦合)到后端优化与地图构建,提供了完整的实战指南,并重点介绍了V-LOAM等经典融合框架的核心思想,旨在帮助开发者构建适应复杂动态环境的高精度SLAM系统。

weixin_29056145的博客 535

简易双机高可用 实现脚本

如下两台机器: A:192.168.136.79 B:192.168.136.78 对外IP:192.168.136.115 在A和B上分别运行如下脚本: #!/bin/bash addr="192.168.136.115" trap ctrl_c INT function ctrl_c() {         echo "receive ctl-c"

韦远科的专栏 1613

2023-07-04 Fast-Lio论文中公式(6)与BCH公式中近似雅可比公式的一致性推导

将(1)式代入(6)式,就有。

wmorries的博客 475

Microsoft Speech SDK 使用过程中女声改为男声遇到的问题

问题将女生改为系统自带男声(Kangkang)根据上面的步骤我的播放声音是改变了,但是还是女生,是yaoyao的女生。是因为下面注册表路径中VoicePath这个配置的路径指向了yaoyao的文件。 如何使用Microsoft Speech SDK,请参考https://blog.youkuaiyun.com/daoming1112/article/details/77542562 使用系统自带男声语音,不需...

u012161365的博客 7538

Nginx+keepalived主从双机热备自动切换解决方案

Nginx+keepalived主从双机热备自动切换解决方案 测试环境如下: 系统:Ceentos 6.4 64位 主nginx服务器:192.168.122.5 备nginx服务器:192.168.122.6 VIP:192.168.122.15 一、Nginx+keepalived 安装—脚本安装 1 2 3 4 5 6 7 8 9 1...

iteye_5347的博客 1135

iTunes登录协议逆向与自动化实现

本文详细解析了iTunes登录协议的逆向工程与自动化实现方法,涵盖请求体构造、签名生成和会话管理等关键技术。通过XML结构解析、X-Apple-ActionSignature生成原理及完整登录流程实现,帮助开发者高效完成iTunes自动化登录,提升工作效率。

weixin_26938645的博客 939

nginx+keepalive主从双机热备+自动切换解决方案

keepalived安装 1、安装keepalived wget http://www.keepalived.org/software/keepalived-2.0.19.tar.gz tar -zxvf keepalived-2.0.19.tar.gz -C /usr/local/ cd keepalived-2.0.19 ./configure --prefix=/usr/local/k...

qq_41508632的博客 1491

BlockUI专栏目录

BlockUI是一个设计NX对话框的工具,是官方推荐使用的对话框制作方法,能够与NX自身风格相统一,并且在实际开发中经常被使用。BlockUI可以帮助用户快速创建NX对话框,支持多种控件类型,如按钮、文本框、标签等。通过使用BlockUI,用户可以轻松地自定义对话框的布局、样式和交互行为。此外,BlockUI还提供了一些高级功能,如动态更新、条件显示和事件处理等,以帮助用户创建更加复杂和灵活的对话框。本专栏讲述了使用BlockUI制作NX对话框的方法,介绍了每个控件的功能,并且分享一些常用操作的源码。

王牌飞行员_里海的博客 1630

[明道云] -基础教学1- 创建第一个工作表:从 0 到实用

明道云工作表相当于数据库表,是存储业务数据的核心组件。创建工作表主要有两种方式:1)从空白新建,通过添加字段(最多200个)、设置属性、配置表单样式;2)从Excel导入,需选择sheet、配置字段映射。创建后系统自动生成默认视图,支持多种视图形式(看板/日历等)。建议设置合适的标题字段和关联关系,初学者可在一小时内完成基础应用搭建。后续可扩展权限控制、工作流自动化等功能。

每日出拳老爷子的博客 556

适合新手的Nginx+Keepalived主从双机热备+自动切换方案配置

Nginx+Keepalived主从双机热备方案通过VRRP协议实现高可用服务,采用主备模式配置虚拟IP(VIP)实现自动故障转移。

小白成长历程 1455

学习STM32的ADC采集声音

为了采集声音信号,需要一个声音传感器(如麦克风),将声音信号转换为电压信号输入到 ADC 引脚。通过硬件准备、STM32CubeMX 配置和代码实现,我们可以实现将声音信号转换为数字信号,并进行后续处理。STM32 是一款广泛应用于嵌入式系统开发的微控制器平台,其拥有丰富的外设和强大的性能,非常适合进行 ADC(模拟数字转换)的声音采集。函数启动 ADC1 的连续转换模式,然后在一个无限循环中等待 ADC 转换完成,并读取采样结果。四、代码实现 在生成的代码中,会生成一些相关的库文件和示例代码。

m0_75244442的博客 2173

keepalived 实现双机热备

当我们配置好了双机热备后,两台节点之间会产生一个 vip,他同一时间只会漂移到一个节点上,我们可以用这个 vip 访问该节点的资源,他就如同你使用这个节点原本的 ip 去访问他一样。我们经常听说 nginx + keepalived 双机热备,其实在这里,双机热备只是利用 keepalived 实现两个节点的故障切换,当主节点挂了,备用节点顶上,保证高可用群集中的热备效果。这时,我们手动去停掉主节点,或者直接 kill 掉主节点的 keepalived 的进程。他会自动切换到备节点。

weixin_42132143的博客 2319

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Nginx + Keepalived 双机热备

基于Nginx和Keepalived双机热备 Keepalived 实现双机热备,消除一台机器单点故障的发生。准备2台机器ip地址分别为192.168.163.34、192.168.163.35。同时这2台机器都设置同一虚拟ip, 这里虚拟ip设置为192.168.163.100。2台机器都需要装上nginx和keepalived。 设置虚拟ip 这里要用到虚拟ip,虚拟ip的设置参考。 安装n...

rui888的博客 7317

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

keepalived+nginx 双机热备搭建

centos7.9 安装keepalived+nginx 双机热备搭建

weixin_47402482的博客 2414

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Nginx之Keepalived实现高可用(双机热备+自动切换)

Nginx于Keepalived可以实现高可用,实现双机热备+自动切换,这种操作在现在的集群系统中,比较的常见,还有,通过keepalived和redis实现热备份的,还有和mysql实现的,类似的案例挺多。 系统架构 keepalived虚拟化出192.168.100.100和192.168.100.101的虚拟化ip,这个系统是两台计算机上,有4个tomcat,2个Nginx...

东境物语 1157

centos7配置keepalived+nginx双机热备

keepalived+nginx双机热备 一、环境 CentOS 7.9 VirtualBox 6.1 二、VirtualBox中安装CentOS系统(略) 1、服务器资源 CentOS 1: IP: 10.0.2.15 Nginx-v-1.19.6 keepalived-v-1.3.5 docker-v-19.03.9 CentOS 2: IP: 10.0.2.16 Nginx-v-1.19.6 keepalived-v-1.3.5 docker-v-19.03.9 CentOS

out_of_it_farmer的博客 3075
上一篇: 查询mySQL时,查询结果如何按照where in数组排序
下一篇: MySQL中通过关联Update将一张表的一个字段更新到另一个表中
撸猫@冒泡泡
博客等级 码龄10年 16粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撸猫@冒泡泡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值