壹
今天的这篇文章发布于 2014年06月,是介绍如何实现 Nginx HA(高可用),主角是 keepalived,这个软件很好用是大名鼎鼎LVS(Linux虚拟服务器)的黄金搭档,为LVS提供高可用支持,当然这么好用的 keepalived不仅支持LVS,也非常适合 Haproxy、Nginx、甚至MySql等需要高可用的应用场景。这里出于篇幅考虑,没有对keepalived 进行详细说明,而是注重是否实现了nginx HA这个功能,后续写负载均衡系&高可用列专题会详细说明。
贰
Nginx-VIP 172.27.233.94 Nginx-Master 172.27.233.95/10.0.0.95 Nginx-Backup 172.27.233.96/10.0.0.96 WEB1 10.0.0.87 WEB2 10.0.0.88
叁
! Configuration File for keepalived#Global global_defs { router_id nginx-cp }vrrp_script chk_nginx { script "killall -0 nginx" interval 3 fall 3 rise 1 weight -30 }#VRRP vrrp_instance VI_1 { state MASTER interface eth0 track_interface { eth0 eth1 }virtual\_router\_id 35 priority 120 advert\_int 1 authentication { auth\_type PASS auth\_pass zongming.net } track\_script { chk\_nginx } virtual\_ipaddress { 172.27.233.94 }}
#Nginx-Backup
! Configuration File for keepalived#Global global_defs { router_id nginx-cp }vrrp_script chk_nginx { script "killall -0 nginx" interval 3 fall 3 rise 1 weight -30 }#VRRP vrrp_instance VI_1 { state BACKUP interface eth0 track_interface { eth0 eth1 }virtual\_router\_id 35 priority 100 advert\_int 1 authentication { auth\_type PASS auth\_pass zongming.net } track\_script { chk\_nginx } virtual\_ipaddress { 172.27.233.94 }}
肆
场景1:各种原因导致 keepalive无法接收vrrp包
模拟 master 故障,backup 获得VIP。
#Nginx-Backup
模拟 master 恢复,重新获取VIP。
#Nginx-Backup
#Nginx-Master
场景2:Nginx Crash导致的切换
模拟 master nginx crash,backup 获得VIP。
#Nginx-Master
#Nginx-Backup
模拟 master nginx recover,重新获取VIP
#Nginx-Master
#Nginx-Backup