1. 程式人生 > >nginx+keepalived 高可用

nginx+keepalived 高可用

backup arc stop pri ges ipaddr inter etc rip

nginx 安裝


rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx

#設置開機啟動
systemctl enable nginx.service

#啟動服務
systemctl start nginx.service


keepalived 安裝
#安裝keepavlived
yum -y install keepalived

#設置開機啟動
systemctl enable nginx.service

#啟動服務
service keepalived start


keepavlived mater設置

global_defs {
notification_email {[email protected]
br/>[email protected]
notification_email_from Keepalived@localhost
smtp_server [email protected]
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.sh"
interval 3
weight 2
}

vrrp_instance VI_1 {

state MASTER
interface eth0
lvs_sync_daemon_interface eth0
virtual_router_id 151
priority 100
advert_int 5
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
#VIP
virtual_ipaddress {
172.16.101.193
}
track_script {
chk_nginx
}
}


keepavlived backup 設置
cat keepalived.conf

global_defs {
notification_email {[email protected]

br/>[email protected]
notification_email_from Keepalived@localhost
smtp_server [email protected]
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/etc/keepalived/chk_nginx.sh"
interval 3 #這個必須要大於腳本裏sleep 2 要不腳本不生效。
weight 2
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_interface eth0
virtual_router_id 151
priority 90
advert_int 5
authentication {
auth_type PASS
auth_pass 1111
}
#VIP
virtual_ipaddress {
172.16.101.193
}
track_script {
chk_nginx
}
}


腳本:
cat /etc/keepalived/chk_nginx.sh

#!/bin/sh
A=ps -C nginx --no-header |wc -l
if [ $A -eq 0 ];then
systemctl start nginx.service
sleep 2
if [ ps -C nginx --no-header |wc -l -eq 0 ];then
systemctl stop keepalived
fi
fi

nginx+keepalived 高可用