CentOS7 下面通过keepalived 配置nginx 主从方式的双机热备

这里我们采用两台Nginx服务器作为前端,一主一从,Keepalived实现状态监测,保证Nginx正常对外提供服务,即主Nginx服务进程死掉之后,keepalived能够通过其自身的检测机制将网站的访问切换到从Nginx上来。
主服务器IP:192.168.1.217
从服务IP:192.168.1.218
虚IP:192.168.1.219
你可以将你网站域名解析到 192.168.1.219 对应的公网IP上,这样主从服务器可以轮流接管该虚IP,保证网站正常对外提供访问

- 安装nginx

- 安装keepalived

  • yum install keepalived

- 配置keepalived

  • 配置nginx-001服务器

    
    #先备份配置文件
    
    cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
    vim /etc/keepalived/keepalived.conf
    
    #修改成如下内容
    
    ! Configuration File for keepalived
    global_defs {
        router_id nginx_server_1
    }
    vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight 20
        !weight为正数
        !如果脚本执行结果为0,,Master:weight+priority>Backup:weight+priority(不切换)
        !如果脚本执行结果不为0,Master:priority<Backup:priority+weight(切换)
        !weight为负数
        !如果脚本执行结果为0,,Master:priority>Backup:priority(不切换)
        !如果脚本执行结果不为0,Master:priority+weight<Backup:priority(切换)
        !一般来说,weight的绝对值要大于MasterBackup的priority之差
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eno16777984
        virtual_router_id 51
        mcast_src_ip 192.168.1.217
        priority 100
        nopreempt
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_script {
            chk_nginx
        }
        virtual_ipaddress {
            192.168.1.219/24
        }
    }
    
    
    #检查nginx进程的代码,当nginx进程奔溃后,keepalived自动启动nginx
    
    vim /etc/keepalived/nginx_check.sh
    
    #添加如下代码
    
    
    #!/bin/bash
    
    A=`ps -C nginx --no-header |wc -l`
    if [ $A -eq 0 ];then
        /usr/sbin/nginx
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
    fi
    
    
    #改成可执行文件
    
    chmod +xxx /etc/keepalived/nginx_check.sh
    • 配置nginx-002服务器(从)
    
    #先备份配置文件
    
    cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
    vim /etc/keepalived/keepalived.conf
    
    #修改成如下内容
    
    (注意:
        state 和主不一样,是BACKUP
        route_id 和主不一样
        priority 小于主机
    )
    
    ! Configuration File for keepalived
    global_defs {
        router_id nginx_server_2
    }
    vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh"
        interval 2
        weight 20
        !weight为正数
        !如果脚本执行结果为0,,Master:weight+priority>Backup:weight+priority(不切换)
        !如果脚本执行结果不为0,Master:priority<Backup:priority+weight(切换)
        !weight为负数
        !如果脚本执行结果为0,,Master:priority>Backup:priority(不切换)
        !如果脚本执行结果不为0,Master:priority+weight<Backup:priority(切换)
        !一般来说,weight的绝对值要大于MasterBackup的priority之差
    }
    vrrp_instance VI_1 {
        state BACKUP
        interface eno16777984
        virtual_router_id 51
        mcast_src_ip 192.168.1.218
        priority 90
        nopreempt
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_script {
            chk_nginx
        }
        virtual_ipaddress {
            192.168.1.219/24
        }
    }

- 启动keepalived

systemctl start keepalived
systemctl enable keepalived

- 测试keepalived+nginx的主从

  • 在主机上 ip a ,查看192.168.1.219成功绑定。
  • shutdown主机,查看从机192.168.1.219成功绑定。说明vip成功漂移
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值