zoukankan      html  css  js  c++  java
  • 记一次Nginx+Keepalived高可用故障转移

     Master端:192.168.2.156

    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.2.156
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    vrrp_script check_nginx {
      script "/data/sh/check_nginx.sh"
      interval 2
      weight 2
    }
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.2.100
        }
     track_script {
      check_nginx
    }
    }

     slave端:192.168.2.157

    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.2.156
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    vrrp_script check_nginx {
      script "/data/sh/check_nginx.sh"
      interval 2
      weight 2
    }
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
       mcast_src_ip 192.168.2.157
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.2.100
        }
    
     track_script {
      check_nginx
    }
    }

     故障转移脚本

    #vim  /data/sh/check_nginx.sh 

    #!/bin/bash 
    COUNT=$(ps -C nginx --no-header |wc -l)
    if [ "${COUNT}"  =  "0" ];then
            echo "重启nginx"
            sleep 2
         COUNT=$(ps -C nginx --no-header |wc -l)
            if [ "${COUNT}" = "0" ];then
                 systemctl  stop  keepalived
            fi
    fi

     # chmod a+x /data/sh/check_nginx.sh 

    [root@localhost ~]# crontab -e

    */1 * * * * /data/sh/check_nginx.sh >> /var/log/check_nginx.log

     测试:当我们尝试停止nghinx时,当手动停止nginx约2秒之后,此时会关闭keepalived,实现vip转移

    浏览器访问浏览:VIP192.168.2.100即可

  • 相关阅读:
    结婚也可以2.0!
    最近读书清单
    Win7旗舰版中的IIS配置asp.net的运行环境
    Google Chrome浏览器
    MySQL到NoSQL:数据的重思和查询方式的转换
    sqlserver游标概念与实例全面解说
    高效管理ASP.NET的JavaScript库
    如何提取网页中的flash
    如何手动启动tomcat
    tomcat单词缩写
  • 原文地址:https://www.cnblogs.com/bixiaoyu/p/9743825.html
Copyright © 2011-2022 走看看