架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4532|回复: 1

【实战】Keepalived 和 Nginx 之 Web 高可用教程

[复制链接]
发表于 2021-10-18 23:08:11 | 显示全部楼层 |阅读模式
Keepalived 软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。所以,Keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

Keepalived 高可用故障切换转移原理

Keepalived 高可用服务对之间的故障切换转移,是通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)来实现的。

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

Keepalived 高可用对之间是通过VRRP通信

1)VRRP,全称Virtual Router Redundancy Protocol,中文名为虚拟路由冗余协议,VRRP的出现是为了解决静态路由的单点故障。
2)VRRP是通过一种竞选协议机制来将路由任务交给某台VRRP路由器的。
3)VRRP用IP多播的方式(默认多播地址(224.0.0.18))实现高可用对之间通信。
4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统运维工作中都是一对。
5)VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。

Keepalived 服务的工作原理

1)Keepalived高可用对之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

2)在Keepalived服务对之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

测试环境

系统:CentOS 8

IP 地址 说明
192.168.50.222 VIP 地址
192.168.50.227 MASTER 主节点
192.168.50.131 BACKUP 备用节点

先看搭建完成的效果图,如下:
keepalived.gif

安装 Nginx 服务

直接使用 yum 在主节点备用节点服务器安装 nginx,命令如下:


分别编辑主节点和备用节点的 nginx 配置文件,路径:/etc/nginx/nginx.conf 配置如下:

QQ截图20211018205630.jpg

通过 nginx 命令启动,测试通过浏览器访问 8055 端口,如下图:

QQ截图20211018220811.jpg

安装 Keepalived
在主节点和备用节点两台服务器安装,命令如下:




配置文件地址:/etc/keepalived/keepalived.conf

QQ截图20211018204818.jpg

这里需要配置一个健康检查脚本,新建 chk_nginx.sh 文件,代码如下:

将脚本上传至 /etc/keepalived 目录。并赋予执行权限,命令如下:



192.168.50.227 主节点 keepalived.conf 配置如下:

192.168.50.133 备用节点 keepalived.conf 配置如下:

在两台服务器分别设置开机启动并启动

QQ截图20211018230652.jpg

至此,配置就算完成了(效果图见文章最上方),可以通过 nginx 服务进行测试,命令如下:

(完)




上一篇:OpenFeign connect timed out executing 异常
下一篇:偶然发现的网站
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-11-20 09:05:11 | 显示全部楼层
使用 keepalived 配置主动-主动高可用性和附加被动节点 https://docs.nginx.com/nginx/adm ... a-keepalived-nodes/
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-23 15:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表