nginx本身带有负载均衡,已经能给我们解决了很多的访问压力,但如果某天我们的一台负载均衡服务器挂了,即使后端的多台主机都还在线,也会访问不了,这时候再临时部署一台负载均衡服务器,可能会降低大量的客户访问体验,我们可以利用keepalived来实现热备功能,即使主负载均衡服务器down了,备用负载均衡服务器也会马上顶上去工作.

主机环境:
1.三台nginx服务器做web主机
nginx的搭建可以参考之前的文档 https://www.jianshu.com/p/d03f5a3ef03b
web01 | 172.16.210.51 |
---|---|
web02 | 172.16.210.52 |
web03 | 172.16.210.53 |
2.两台nginx服务器器做负载均衡主机
负载均衡的搭建可以参考 https://www.jianshu.com/p/61a7f6715069
lb01 | 172.16.210.54 |
---|---|
lb02 | 172.16.210.54 |
开始部署
1.安装keeepalived
lb01:
[root@lb01-server ~]# yum install -y keepalived.x86_64
lb02:
[root@lb02-server ~]# yum install -y keepalived.x86_64
2.编辑keepalived配置文件
lb01:
[root@lb01-server ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { ##全局配置部分
router_id lb01 ##标识router_id名
}
vrrp_instance czq { ##Vrrp相关配置(vrrp实例配置-- 一个服务可以启动多个主进程)
state MASTER ##标识所在实例中的身份(MASTER/BACKUP)
interface ens192 ##指定虚拟IP地址出现在什么网卡上
virtual_router_id 51 ##标识router_id
priority 150 ##设定优先级 优先级越高,越可能成为主
advert_int 1
authentication { ##实现通讯需要有认证过程
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { ##配置生成的虚拟vip地址
172.16.210.3/24
}
}
lb02
[root@lb02-server ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance czq {
state BACKUP ##定义为备份主机
interface ens192
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.210.3/24
}
}
3.启动keepalived
lb01
[root@lb01-server ~]# systemctl start keepalived ; systemctl enable keepalived
lb02
[root@lb02-server ~]# systemctl restart keepalived

此时,lb01因为是master节点,所以马上就得到了vip地址
4.测试
修改客户端的hosts,添加网站网址到vip地址的解析
172.16.210.3 www.czq.com
浏览器访问

访问成功
把lb01的keepalice停掉,模拟生产环境的主节点挂点
[root@lb01-server ~]# systemctl stop keepalived

此时vip地址会马上移到备用负载均衡服务器
再次访问

客户端依然能正常访问,实现了高可用的效果
网友评论