zoukankan      html  css  js  c++  java
  • 十三、Nginx+Keepalived高可用

    主节点:

    yum install keepalived
    vi /etc/keepalived/keepalived.conf
    global_defs { 
       notification_email { 
         acassen@firewall.loc 
         failover@firewall.loc 
         sysadmin@firewall.loc 
       } 
       notification_email_from Alexandre.Cassen@firewall.loc  
       smtp_server 127.0.0.1 
       smtp_connect_timeout 30 
       router_id NGINX_MASTER
    } 
    
    vrrp_script check_nginx {
        script "/etc/keepalived/check_nginx.sh"
        interval 5
        weight -2
    }
     
    vrrp_instance VI_1 { 
        state MASTER 
        interface ens33
        virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 
        priority 100    # 优先级,备服务器设置 99 
        advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 
        authentication { 
            auth_type PASS      
            auth_pass 1111 
        }  
        virtual_ipaddress { 
            10.16.8.164/24
        } 
        track_script {
            check_nginx
        } 
    }

    备节点

    
    
    yum install keepalived

    cat /etc/keepalived/keepalived.conf
    global_defs { 
       notification_email { 
         acassen@firewall.loc 
         failover@firewall.loc 
         sysadmin@firewall.loc 
       } 
       notification_email_from Alexandre.Cassen@firewall.loc  
       smtp_server 127.0.0.1 
       smtp_connect_timeout 30 
       router_id NGINX_BACKUP
    } 
     
    vrrp_script check_nginx {
        script "/etc/keepalived/check_nginx.sh"
        weight -2
        interval 5
    }
     
    vrrp_instance VI_1 { 
        state BACKUP 
        interface ens33
        virtual_router_id 51 # VRRP 路由 ID实例,每个实例是唯一的 
        priority 99    # 优先级,主服务器设置 100 
        advert_int 1    # 指定VRRP 心跳包通告间隔时间,默认1秒 
        authentication { 
            auth_type PASS      
            auth_pass 1111 
        }  
        virtual_ipaddress { 
            192.168.31.60/24
        } 
        track_script {
            check_nginx
        } 
    }
    check_nginx.sh脚本
    cat /etc/keepalived/check_nginx.sh 
    #!/bin/bash
    A=`ps -C nginx --no-header | wc -l`
    if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx #尝试重新启动nginx
        sleep 2  #睡眠2秒
        if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
            killall keepalived #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
        fi
    fi

    启动

    systemctl start keepalived
    systemctl enable keepalived
  • 相关阅读:
    如何在某些情况下禁止提交Select下拉框中的默认值或者第一个值(默认选中的就是第一个值啦……)
    渗透测试
    如何制作chrome浏览器插件之一
    linux中的vi命令
    链栈
    二进制转16进制JAVA代码
    抽象数据类型的表示与实现
    变量的引用类型和非引用类型的区别
    说明exit()函数作用的程序
    计算1-1/x+1/x*x
  • 原文地址:https://www.cnblogs.com/xw115428/p/11956418.html
Copyright © 2011-2022 走看看