当前位置: 首页 >服务端 > Keepalived 安装与配置

Keepalived 安装与配置

原文大部分内容摘自 https://blog.csdn.net/yinwenjie/article/details/47130609

本文简单记录 Keepalived 软件的安装配置操作.

准备两台服务器,分别安装好 nginx web 服务器.

再分别独立安装Keepalived系统
我们的目标是“在一台工作的Nginx崩溃的情况下,系统能够检测到,并自动将请求切换到另外一台备份的Nginx服务器上”。所以,之前安装的两台Nginx,一台是Master服务器是主要的工作服务器,另一台是备份服务器,在Master服务器出现问题后,由后者接替其工作。如下图所示(外网的请求使用一个由keepalived控制的虚拟的浮动IP进行访问):
Keepalived 安装与配置 _ JavaClub全栈架构师技术笔记

使用yum 安装好 keepalived.
下面的脚本代码为检测 nginx 服务器是否正常运行,如果没有运行则尝试启动 nginx,休眠2s后再次检测nginx运行状态,如果为运行,则退出此主机上的 keepalived,由其他 keepalived 接管.

#!/bin/shif [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; thensystecmctl start nginxfisleep 2if [ $(ps -C nginx --no-header | wc -l) -eq 0 ]; thensystecmctl stop keepalivedfi

keepalived 配置

! Configuration File for keepalived# global setting , notify email settingglobal_defs {#节点id,每个节点都不同router_id LVS_V1}#检测 nginx 运行状态的脚本vrrp_script chknginx {script "/opt/checknginx.sh"interval 10}# instance settingvrrp_instance VI_1 {# 节点角色,MASTER(一个) 和 BACKUP(多个),按角色选中填写state BACKUPinterface eth1# 这里一定是一样的virtual_router_id 52# 这里的优先级比Master节点低priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}# 虚拟ip,对外提供,客户端访问此ip即为访问 keepalived 中MASTER 所在主机virtual_ipaddress {192.168.1.100}track_script {chknginx}}

Keepalived 非抢占模式

keepalived的切换可以是自动的,但是却做不到毫秒级别,他怎么都需要几秒钟的时间进行切换
这就有一个问题,虽然在主节点出现问题我们转向备份节点时,这个延时无可避免,但是在我们修复主节点后,实际上并没有必要再马上做一次切换,所以Keepalived提供了一种非抢占模式,来满足这个要求
此模式下keepalived 的配置

! Configuration File for keepalived# global setting , notify email settingglobal_defs {router_id LVS_V1}vrrp_script chknginx {script "/opt/checknginx.sh"interval 10# 一旦节点失效,节点的优先级就减少2# 有多少个keepalived节点,就填写多少数量。# 这样保证这个节点的优先级比其他节点都低weight -2# fall 表示多少次检查失败,就算节点失效。默认1#fall 1}vrrp_instance VI_1 {#state状态都是BACKUP表示是主要工作节点。state BACKUPinterface eth1virtual_router_id 52# 这个关键配置项,设置为“非抢占”模式nopreempt# 每个节点的优先级一定要不一样priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}#虚拟地址和绑定的端口,如果有多个,就绑定多个#dev 是指定浮动IP要绑定的网卡设备号virtual_ipaddress {192.168.61.100}#设置的检查脚本#关联上方的“vrrp_script chknginx”track_script {chknginx}}

作者:shangsharon
来源链接:https://www.cnblogs.com/shangsharon/p/11557587.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112242.html

标签:Nginx
分享给朋友: