keepalived简单配置实现nginx高可用

作者 : 开心源码 本文共1576个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共165人阅读

keepalived主要是通过VRRP协议实现高可用的,VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为理解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行,VRRP是通过一种竞选机制来将路由的任务交给某台VRRP路由器的。

在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活看,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因而无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。

VRRP是遑过竞选机制来确定主备的,主的优先级高于备,因而,工作时主会优先取得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,而后顶替主节点对外提供服务。在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。

一个master的配置示例:

[lh@nginx-master keepalived]$ cat /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id yw #定义路由标识信息,相同局域网要唯一

}

vrrp_script chk_nginx_proxy {

script “/server/scripts/chk_nginx_proxy.sh” #监控nginx的脚本

interval 2

weight 2

}

vrrp_instance VI_1 { #定义实例

state MASTER # 状态参数

interface eth1 #指定网卡

virtual_router_id 55 #同一个集群ID要一致

priority 150 #优先级 越大越优先

advert_int 1 #主备通讯时间间隔

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.97.190.128/24 #定义的虚拟IP地址

}

track_script {

chk_nginx_proxy

}

}

备机的keepalived配置

keepalived简单配置实现nginx高可用

备机的keepalived配置

使用ip addr show 查看master机器的IP信息:

可以发现128这个ip目前在这个机器上:

keepalived简单配置实现nginx高可用

master ip addr show

将master的keepalived停掉:

[lh@nginx-master keepalived]$ sudo service keepalived stop

Stopping keepalived: [ OK ]

而后在备机查看ip信息:

keepalived简单配置实现nginx高可用

备机 ip addr show

可以发现IP已经漂移到了备机上,假如此时master上的keepalived重新启动,会发现128这个ip又会回到master机器上,由于master优先级比backup的高。

keepalived简单配置实现nginx高可用

附chk_nginx_proxy.sh的脚本内容:

[lh@nginx-master keepalived]$ cat /server/scripts/chk_nginx_proxy.sh

#! /bin/sh

if [ `netstat -lntup|grep nginx|wc -l` -ne 2 ];then

/etc/init.d/keepalived stop

fi

[lh@nginx-master keepalived]$

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » keepalived简单配置实现nginx高可用

发表回复