keepalive+nginx主从

  1. 安装依赖包
apt-get install libssl-dev
apt-get install openssl
apt-get install libpopt-dev
  1. 安装keepalived
wget http://www.keepalived.org/software/keepalived-2.0.18.tar.gz
tar -zxvf keepalived-2.0.18.tar.gz
cd keepalived-2.0.18
./configure --prefix=/opt/local/keepalived
make && make install
  1. 配置keepalived
    check_nginx.sh
#!/bin/bash
count=$(ps -C nginx --no-heading | wc -l)
if [ "$count" = "0" ]; then
   # systemctl start nginx.service
    echo `/opt/local/nginx/sbin/nginx`
    sleep 2
    count=$(ps -C nginx --no-heading | wc -l)
    exit 1
else
    exit 0
fi

keepalived.conf主:

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.113.134 #这里修改为本机IP
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
#添加检测脚本
vrrp_script chk_http_port {
        script "/etc/keepalived/scripts/nginx_check.sh"
        interval 2
        weight 2
}
vrrp_instance VI_1 {
    state MASTER   #主机这里是MASTER 从机是BACKUP
    interface ens33  #网卡
    virtual_router_id 51  # 主、从机的virtual_router_id必须相同
    priority 100   # 主备机取不同的优先级,主机优先级大
    advert_int 1  #心跳检测间隔时间
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.113.151   # VRRP 虚拟IP ;可换行输入多个进行绑定
    }
}

keepalived备:

! Configuration File for keepalived
global_defs {
   notification_email {  #指定keepalived在发生事件时(比如切换)发送通知邮件的邮箱
     [email protected]  #设置报警邮件地址,可以设置多个,每行一个。 需开启本机的sendmail服务
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]   #keepalived在发生诸如切换操作时需要发送email通知地址
   smtp_server 192.168.113.131   #指定发送email的smtp服务器
   smtp_connect_timeout 30       #设置连接smtp server的超时时间
   router_id LVS_DEVEL            #运行keepalived的机器的一个标识,通常可设为hostname。故障发生时,发邮件时显示在邮件主题中的信息。
}
vrrp_script chk_http_port {
        script "/usr/local/nginx/nginx_check.sh"
        interval 2   #检测脚本执行间隔时间
        weight 2    #设置当前服务器权重增量
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.113.151
    }
}

  1. 安装nginx
  2. 测试
killall keepalived #其中一个看一下效果

猜你喜欢

转载自blog.csdn.net/bj_ameng/article/details/110922543