keepalived和nginx的安装和使用
1、安装keepalived
解压后 ./configure --prefix=/usr/local/keepalived
make&&make install
2、拷贝设置
mkdir /etc/keepalived
cp /soft/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/
cp /soft/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
设置开机启动
chkconfig keepalived on
配置主节点:编辑/etc/keepalived/keepalived.conf
global_defs {
#一个没重复的名字即可
router_id keep57
}
# 检测nginx是否运行
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2#权重减少20,减少完要比从机的值小
weight -20
}
vrrp_instance VI_1 {
# MASTER代表主机
state MASTER
# 网卡名字 ip addr 可以查看
interface ens33
# 同一个keepalived集群的virtual_router_id相同
virtual_router_id 57
# 权重,master要大于slave
priority 100
# 主备通讯时间间隔
advert_int 1
# 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
# 本机ip
mcast_src_ip 192.168.1.57
# 设置nopreempt防止抢占资源
nopreempt
# 主备保持一致
authentication {
auth_type PASS
auth_pass 1111
}
# 与上方nginx运行状况检测呼应
track_script {
chk_nginx
}
virtual_ipaddress {
# 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
192.168.1.111
}
}
从配置
global_defs {
#一个没重复的名字即可
router_id keep56
}
# 检测nginx是否运行
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
# 代表是从机
state BACKUP
# 网卡名字,ip addr获取
interface ens33
# 同一个keepalived集群的virtual_router_id相同
virtual_router_id 57
# 权重,master要大于slave
priority 90
# 主备通讯时间间隔
advert_int 1
# 如果两节点的上联交换机禁用了组播,则采用vrrp单播通告的方式
# 本机ip
mcast_src_ip 192.168.1.56
# 设置nopreempt防止抢占资源
nopreempt
# 主备保持一致
authentication {
auth_type PASS
auth_pass 1111
}
# 与上方nginx运行状况检测呼应
track_script {
chk_nginx
}
virtual_ipaddress {
# 虚拟ip地址(VIP,一个尚未占用的内网ip即可)
192.168.1.111
}
}
文件/etc/keepalived/nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
参考文献:https://www.cnblogs.com/yjc1605961523/p/12295051.html