keepalived +nginx 双ACTIVE
keepalived的双active配置很简单 创建2个vrrp_instance实例 每个包含一个虚路由 每个虚路由一个虚IP 然后 vrrp_instance1 机器a是master vrrp_instance 2机器a是backup 然后复制配置文件 到机器b上 在vrrp_instance1改为backup vrrp_instance2改为Master既可
当然要修改优先级。具体配置网上一哈一堆。
给个范例
#####################################以下是机器A的配置##################################
vrrp_instance VI_3 {
state MASTER
interface eth0
virtual_router_id 100
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass skybug
}
virtual_ipaddress {
192.168.1.1
}
}
vrrp_instance VI_4 {
state BACKUP
interface eth0
virtual_router_id 101
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass skybug4
}
virtual_ipaddress {
192.168.1.2
}
################################以下是机器B的配置########################################
vrrp_instance VI_3 {
state BACKUP
interface eth0
virtual_router_id 100
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass skybug
}
virtual_ipaddress {
192.168.1.1
}
}
vrrp_instance VI_4 {
state MASTER
interface eth0
virtual_router_id 101
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass skybug4
}
virtual_ipaddress {
192.168.1.2
}
#########################################################################################
困扰很久的一个问题
机器A启动keepalived后可以看到绑定了虚拟ip1 机器B启动keepalived后可以看到绑定了虚拟IP2
但是过一会儿,2个地址就会都到机器A上,机器B上也能看到2个地址都绑定了。
当然实际用的时候 2个机器只有1个机器的地址有效 另一个肯定是无效的 看那个先发ARP广播了。
把iptables服务停了后 发现 机器A是虚拟ip1 机器B是虚拟IP2 正常。启动iptables后就又不正常了。
于是
iptables -A RH-Firewall-1-INPUT -j LOG --log-level debug --log-prefix "DROP INPUT: "
同时修改syslog.conf
kern.debug /var/log/iptables.log
重启syslog服务
tail -f /var/log/iptables.log
发现 有224.0.0.18地址的数据包被丢弃。
224.0.0.18 是Vrrp发通告的多播地址。被防火墙阻挡后 就无法选举master了 因此 启动防火墙后2个机器都是master
逐
iptables -I RH-Firewall-1-INPUT -d 224.0.0.18 -j ACCEPT
既可
转载于:https://blog.51cto.com/skybug/1336801