keepalived整合nginx实现nginx的高可用

keepalived 整合 nginx

nginx配置可看之前博客

  1. 下载keepalived压缩包,并上传到/usr/local/src,并解压
  2. ./configure --prefix=/usr/local/keepalived,检查环境是否具备,如果不具备(一般是openssl)则安装对应软件
  3. make && make install
  4. 拷贝对应文件,到系统环境下
    cp /usr/local/keepalived/sbin/keepalived /etc/init.d/
    cp /usr/local/keepalived/sbin/keepalived /etc/sysconfig/
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
  5. 给配置文件建立软连接(原因:keepalived,默认配置文件位置:/etc/keepalived/)
    mkdir /etc/keepalived ;
    ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf;
  6. 给配置文件赋权限
    chmod 644 /etc/keepalived/keepalived.conf
  7. 修改默认配置 /etc/keepalived/keepalived.conf
global_defs {
    router_id linux3 #主机名
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径
    interval 2 ## 检测时间间隔
    weight -20 ## 如果条件成立,权重-20
}

vrrp_instance VI_1 {
    state BACKUP # 主用MASTER,备用 BACKUP
    interface ens33 #网卡名
    virtual_router_id 51 # 保持主备一致
    priority 80 # 主的优先级要高于备的优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    ## 将 track_script 块加入 instance 配置块 
    track_script {
        chk_nginx  ## 执行 Nginx 监控的服务
    }
    virtual_ipaddress {
        172.16.153.127 #虚拟ip
    }
}
  1. 在/etc/keepalived/目录下创建nginx_check.sh
    用途:检查nginx是否启动,未启动则启动nginx,提供给keepalived使用
#!/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
  1. 服务启停
    启动:systemctl start keepalived
    停止:systemctl stop keepalived
    重启:systemctl restart keepalived
    查看状态:systemctl status keepalived.service
    查看日志:journalctl -xe

设置为开机自启动(不自启动 ):chkconfig keepalived on/off

你可能感兴趣的:(linux)