网站入口使用nginx来进行代理和缓存,为提供高可用,两个入口机器使用keepalived来进行互备。
需要两个VIP绑定在两个入口代理机器上,vip1在proxy1上为master,vip2在proxy1上为slave。vip1在proxy2上为slave, vip2在proxy2上为master。
当proxy1上服务或机器出现故障时,vip1就自动漂移到proxy2上,在proxy2上有两个vip 和 机器本身的ip。
#keepalived 配置,检查本机上nginx进程是否存在。
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2 # check every 2 seconds
weight 55 # add 2 points of prio if OK
}
master和slave的priority 差值小于脚本中的weight值。
priority 150
这样在master上nginx进程不存在时,slave的priority就会大于master,VIP也就会漂移过去。
! Configuration File for keepalived
global_defs {
notification_email {
xxx@
}
notification_email_from xxx@
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id proxy1
}
vrrp_script chk_nginx {
script "killall -0 nginx"
interval 2 # check every 2 seconds
weight 55 # add 2 points of prio if OK
}
vrrp_instance VI_1 {
state MASTER
interface bond0
virtual_router_id 71
priority 150 advert_int 1
authentication {
auth_type PASS
auth_pass xxx
}
virtual_ipaddress {
x.x.x.x
}
track_script {
chk_nginx
}
track_interface{
bond0
bond1
}
}