建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的
上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置:
2台Nginx+keepalived互为主备,各自绑定一个公网虚拟IP,提供负载均衡服务,同时工作,当其中一台机器出现故障,请求转移到一台机器负担,对比与主从来说资源利用比较合理,也比较适合目前的架构。
准备:
标配四台服务器[全部搭建完成]
Master1:192.168.102.110 nginx+keepalived[对应我们上篇的master]
Master2:192.168.102.113 nginx+keepalived[对应我们上篇的backup]
VIP-master1:192.168.102.138
VIP-master2:192.168.102.139
Tomcat1:192.168.102.111
Tomcat2:192.168.102.112
1、因为这里是接着Nginx+keepalived主从配置写的,咱们先看一下主从的配置
查看master和backup的Nginx、keepalived配置[目前是主从配置]
Master的keepalived配置
Master的Nginx配置
Backup的keepalived配置
Backup的Nginx配置
2、 把主从配置修改为双主热备
Master对应master1,修改master配置文件
注意看下方注释:
#定义vrrp实例,VI_1 为虚拟路由的标示符,自己定义名称
#keepalived在同一virtual_router_id中priority(0-255)最大的会成为master,也就是接管VIP
#priority最大的主机发生故障后次priority将会接管
vrrp_instance VI_1 {
state MASTER #主服务器,注意这里如果是主从。那么当主priority<从priority,backup是会抢占为master的
interface eth0 #网卡名
virtual_router_id 51 #同一vrrp_instance下主备要相同
priority 100 #如果是主备,优先级要区别
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
#设置VIP,它随着state变化而增加删除,当state为master的时候就添加,当state为backup的时候则删除,由优先级决定
virtual_ipaddress {
#192.168.200.16
#192.168.200.17
#192.168.200.18
192.168.102.138 #vip
}
}
#定义vrrp实例,VI_2 为虚拟路由的标示符,自己定义名称
#keepalived在同一virtual_router_id中priority(0-255)最大的会成为master,也就是接管VIP
#priority最大的主机发生故障后次priority将会接管
vrrp_instance VI_2 {
state BACKUP #从服务器,注意这里如果是主从。那么当主priority<从priority,backup是会抢占为master的
interface eth0 #网卡名
virtual_router_id 52 #同一vrrp_instance下主备要相同
priority 90 #如果是主备,优先级要区别
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
#设置VIP,它随着state变化而增加删除,当state为master的时候就添加,当state为backup的时候则删除,由优先级决定
virtual_ipaddress {
#192.168.200.16
#192.168.200.17
#192.168.200.18
192.168.102.139 #vip
}
}
Backup对应master2,修改backup配置文件。类似同上
3、 测试
使用192.168.102.138
使用192.168.102.139
4、模拟故障
挂掉master1[vip1]
这时不管访问的是vip1[192.168.102.138]还是vip2[192.168.102.139]都将导到vip2上去
测试
现在所有的请求都转移到master2
测试完成。