一.架构
在Keepalived + Nginx高可用负载均衡架构中,keepalived负责实现High-availability (HA) 功能控制前端机VIP(虚拟网络地址),当有设备发生故障时,热备服务器可以瞬间将VIP自动切换过来,实际运行中体验只有2秒钟切换时间,DNS服务可以负责前端VIP的负载均衡。
nginx负责后端web服务器的负载均衡,将客户端的请求按照一定的算法转发给后端处理,后端将响应直接返回给客户端。
二.原理
MASTER、BACKUP两台服务器均通过keepalived软件把ens33网卡绑上一个虚拟IP(VIP)地址192.168.32.88,此VIP当前由谁承载着服务就绑定在谁的ens33上,当MASTER发生故障时,BACKUP会通过/etc/keepalived/keepalived.conf文件中设置的心跳时间advert_int 1检查,无法获取MASTER正常状态的话,BACKUP会瞬间绑定VIP来接替MASTER的工作,当MASTER恢复后keepalived会通过priority(权重参数:值越大优先使用)参数判断优先权将虚拟VIP地址192.168.32.88重新绑定给MASTER的ens33网卡。
三.优点
1.实现了可弹性化的架构,在并发量大的时候可以临时添加web服务器进去;
2.upstream实现负载均衡,可以自动判断后端的机器,并且自动踢出不能正常提供服务的机器,保证后端服务高可用;
3.Keepalvied相对于lvs而言,正则分发和重定向更为灵活。而Keepalvied可避免单点故障;保证nginx高可用。
4.用nginx做负载均衡,无需对后端的机器做任何改动。
5.nginx部署在docker容器里,即大量地节约开发、测试、部署的时间,又可以在出现故障时通过镜像快速恢复业务。
三、系统环境
4台服务器。
服务器 | 操作系统 | IP地址 | 安装软件 |
---|---|---|---|
MASTER | Centos 7.5 64位 | 192.168.32.22 | docker+nginx+keepalived |
BACKUP | Centos 7.5 64位 | 192.168.32.33 | docker+nginx+keepalived |
WEB_1 | Centos 7.5 64位 | 192.168.32.44 | docker+springboot |
WEB_2 | Centos 7.5 64位 | 192.168.32.55 | docker+springboot |
四、操作步骤
(一)安装配置nginx
分别在MASTER、BACKUP两台服务器上操作
1、部署docker环境
(1)安装docker
注:安装的是docker社区版本
yum install -y yum-utils device-