keepalived +nginx 双ACTIVE

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

既可


你可能感兴趣的:(nginx,keepalived)