案例需求
部署基于nginx分发器的高可用web集群
- 分发器故障自动切换
- 数据服务器自动容错
- 任何机器宕机不中断web业务
实验拓扑
实验环境
角色 | IP |
---|---|
client | 192.168.0.10 |
master | 192.168.0.40 VIP=192.168.0.150 |
backup | 192.168.0.41 VIP=192.168.0.150 |
web1 | 192.168.0.42 |
web2 | 192.168.0.43 |
实验步骤
a、配置nginx集群
1 | master&backup安装nginx和keepalived |
b、配置keepalived
1 | [root@master ~]# vim /etc/keepalived/keepalived.conf |
c、构建关联脚本
1 | [root@master ~]# vim /etc/keepalived/nginx_pid.sh |
集群高可用性测试
集群测试:使用客户端正常访问VIP
1 | [root@client ~]# curl 192.168.0.150 |
在master上down掉nginx服务
1 | [root@master ~]# watch -n1 'killall nginx' |
继续测试
1 | [root@client ~]# curl 192.168.0.150 |
重启master上的keepalived服务
1 | [root@master ~]# ip add #查看VIP是否飘回来 |
再次测试
1 | [root@client ~]# curl 192.168.0.150 |
数据服务器宕机测试
停止web1主机上的web服务
1 | [root@web1 ~]# systemctl stop httpd |
切换到client主机测试
1 | [root@client ~]# curl 192.168.0.150 |
启动web1主机上的web服务
1 | [root@web1 ~]# systemctl start httpd |
切换到client主机测试
1 | [root@client ~]# curl 192.168.0.150 |