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
  • 相关阅读:
    IDEA常用快捷键
    mybatis动态sql总结
    端口被占用的问题解决 Web server failed to start. Port ×× was already in use
    java常见的面试题(二)
    java常见的面试题(一)
    Zookeeper学习总结
    Oracle 创建表空间及用户授权、dmp数据导入、表空间、用户删除
    Navicat远程连接服务器mysql
    HashMap的实现原理?如何保证HashMap线程安全?
    ArrayList和LinkedList内部是怎么实现的?他们之间的区别和优缺点?
  • 原文地址:https://www.cnblogs.com/xw115428/p/11956418.html
Copyright © 2011-2022 走看看