用keeplived实现nginx高可用
1.上传keepalived安装包:
cd /usr/local/source
rz
2.解压
yum install unzip
unzip keepalived-1.3.4.zip
3.安装:
mv keepalived-1.3.4 /usr/local/keepalived/
cd /usr/local/keepalived/
chmod 775
chmod 775 configure
./configure --prefix=/data/program/keepalived --sysconf=/etc
make && make install
4.修改配置文件
cd /etc/keepalived/
vim keepalived.conf
keepalived.conf:
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server smtp.hysec.com
smtp_connection_timeout 30
router_id nginx_master
}
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 66
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.126.128
}
}
5.创建check_nginx_pid.sh文件
cd /usr/local/src/
mkdir check_nginx_pid.sh
check_nginx_pid.sh内容:
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx #重启nginx
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi
修改权限:
chmod 775 check_nginx_pid.sh
6.backup的安装和配置跟master一样,除了keepalived.conf:
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server smtp.hysec.com
smtp_connection_timeout 30
router_id nginx_backup
}
vrrp_script chk_http_port {
script "/usr/local/src/check_nginx_pid.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 66
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.126.128
}
}
6.启动master,backup的keepalived:
/data/program/keepalived/sbin/keepalived
7.查看日志:
8.测试keepalived master宕机的表现
关闭linux
shutdown -h now
查看backup的日志:
backup变成了master.
再重启master查看日志:
重启后还是master
查看backup日志:
又变回backup
git上配置文件地址:https://github.com/shidebin/installationPackage