没有合适的资源?快使用搜索试试~ 我知道了~
首页Nginx+keepalived双机热备(主从模式)
Nginx+keepalived双机热备(主从模式)
需积分: 50 1.0k 浏览量
更新于2023-03-16
评论 1
收藏 277KB DOCX 举报
Nginx+keepalived双机热备(主从模式),根据文档操作,本人部署和测试过,可运行
资源详情
资源评论
资源推荐

Nginx+keepalived 双机热备(主从模式)
负载均衡技术对于一个网站尤其是大型网站的 服务器集群来说是至关重要的!做好负载均
衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行。
关于负载均衡介绍,可以参考:
负载均衡总结性说明(四层负载 七层负载)
由于业务扩展,网站的访问量不断加大,负载越来越高。现需要在 前端放置 负载
均衡同时结合 对前端 实现 高可用。
) 进程基于 多进程模型,自身具有非常稳定的子进程管理功
能。在 进程分配模式下, 进程永远不进行业务处理,只是进行任务分发,从而
达到 进程的存活高可靠性,进程所有的业务信号都 由主进程发出,
进程所有的超时任务都会被 中止,属于非阻塞式任务模型。
) 是 下面实现 !""# 备份路由的高可靠性运行件。基于 设计
的服务模式能够真正做到主服务器和备份服务器故障时 $# 瞬间无缝交接。二者结合,可以构架
出比较稳定的软件 % 方案。
介绍:
是一个基于 !""# 协议来实现的服务高可用方案,可以利用其来避免 $# 单点故障,
类似的工具还有 &、'('、')。但是它一般不会单独出现,而是与其
它负载均衡技术(如 、&(、)一起工作来达到集群的高可用。
!""# 协议:
!""# 全称 !""'(#',即 虚拟路由冗余协议。可以认为它是实
现路由器高可用的容错协议,即将 * 台提供相同功能的路由器组成一个路由器组"
+,这个组里面有一个 ) 和多个 ',但在外界看来就像一台一样,构成虚拟
路由器,拥有一个虚拟 $#(,也就是路由器所在局域网内其他机器的默认路由),占有这
个 $# 的 ) 实际负责 "# 相应和转发 $# 数据包,组中的其它路由器作为备份的角色处于
待命状态。) 会发组播消息,当 ' 在超时时间内收不到 包时就认为 )
宕掉了,这时就需要根据 !""# 的优先级来选举一个 ' 当 ),保证路由器的高可
用。
在 !""# 协议实现里,虚拟路由器使用 ,,-,,-./-,,-,-00作为虚拟 1 地址,00 就是唯
一的 !"$2(!"$23),这个地址同一时间只有一个物理路由器占用。在
虚拟路由器里面的物理路由器组里面通过多播 $# 地址 45,5,56来定时发送通告消息。每个
" 都有一个 -..之间的优先级别,级别最高的(&&()将成为主控
())路由器。通过降低 ) 的优先权可以让处于 ' 状态的路由器抢占(-
))主路由器的状态,两个 ' 优先级相同的 $# 地址较大者为 ),接管虚拟
$#。

与 &'(' 等比较:
、1('、 这三个集群组件我们到底选哪个好呢?
首先要说明的是,、1(' 是属于同一类型, 与
、1(',根本不是同一类型的。
使用的 协议方式,虚拟路由冗余协议 !""'(
#',简称 !""#;
或 1(' 是基于主机或网络服务的高可用方式;
简单的说就是, 的目的是模拟路由器的高可用, 或 1(' 的目的
是实现 ' 的高可用。
所以一般 是实现前端高可用,常用的前端高可用的组合有,就是我们常见的
!、*、(。而 或
1(' 是实现服务的高可用,常见的组合有 71('
#')*8实现 9 服务器的高可用、71('
#')*8(: 实现 (: 服务器的高可用。总结一下, 中实现
轻量级的高可用,一般用于前端高可用,且不需要共享存储,一般常用于两个节点的高可用。
而 或 1('一般用于服务的高可用,且需要共享存储,一般用于多节点的高
可用。这个问题我们说明白了。

那 & 与 '(' 又应该选择哪个好?
一般用 '(',因为 '(' 的运行机制更优于 &,就连从 & 分离出
来的 ') 都说在以后的开发当中更倾向于 '(',所以现在
'('') 是最佳组合。
双机高可用一般是通过虚拟 $#(飘移 $#)方法来实现的,基于 ; 的 $# 别名技术。
双机高可用方法目前分为两种:
)双机主从模式:即前端使用两台服务器,一台主服务器和一台热备服务器,正常情况下,
主服务器绑定一个公网虚拟 $#,提供负载均衡服务,热备服务器处于空闲状态;当主服务器发
生故障时,热备服务器接管主服务器的公网虚拟 $#,提供负载均衡服务;但是热备服务器在主
机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠。
)双机主主模式:即前端使用两台负载均衡服务器,互为主备,且都处于活动状态,同时各
自绑定一个公网虚拟 $#,提供负载均衡服务;当其中一台发生故障时,另一台接管发生故障服
务器的公网虚拟 $#(这时由非故障机器一台负担所有的请求)。这种方案,经济实惠,非常适
合于当前架构环境。
今天在此分享下 Nginx+keepalived 实现高可用负载均衡的主从模
式的操作记录:
可以认为是 !""# 协议在 上的实现,主要有三个模块,分别是
'、'&' 和 。
' 模块为 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
'&' 负责健康检查,包括常见的各种检查方式。
模块是来实现 !""# 协议的。
一、环境说明:
操作系统:'<56,<4 位
) 机器()-):,75,5=654=5<6554
机器(-):,75,5=654=5<6554
公用的虚拟 $#(!$#):,75,5=65,>>>负载均衡器上配置的域名都解析到这个 !$# 上
应用环境如下:

二、环境安装
安装 和 服务()- 和 - 两台服务器上的安装操作完全
一样)。
安装依赖
?@)-ABC()-('''-D--
下载(百度云盘下载地址:&E55')'FG$>>>>提取秘钥:6)
?@)-ABC'''
?@)-'BC>>&E5-5=5H55D
?@)-'BC>&E55I-
57555D
安装
?@)-'BC-DI-5=5H55D>
?@)-'BC'-5=5H
添加 用户,其中- 参数表示不添加用户家目录,- 参数表示指定 & 类型
?@)--5=5HBC-->
?@)--5=5HBC)''''>
C将这句注释掉 取消 2 编译模式 大概在 H= 行
C18 +JKL18 +-K
?@)--5=5HBC>5'3--3J'--
J--J--&-&MM)--&-&MNM)--&-
&MMM)--&-&MDM'M)--&-'
?@)--5=5HBC)OO)
安装
?@)-'BC-DI-57555D>
?@)-'BC'-575
?@)--575BC5'3>
?@)--575BC)OO)
?@)--575BC'
''-575'5''55
?@)--575BC'''('3
'('3
?@)--575BC)'
?@)--575BC'
''5'I'
?@)--575BC''
将 和 服务加入开机启动服务
剩余19页未读,继续阅读
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0