zoukankan      html  css  js  c++  java
  • 高可用keepalived与nginx

    Nginx默认监听在所有的IP地址上,VIP会飘到一台节点上,相当于那台nginx多了VIP这么一个网卡,所以可以访问到nginx所在机器

    但是.....如果nginx宕机,会导致用户请求失败,但是keepalived没有挂掉不会进行切换,所以需要编写一个脚本检测Nginx的存活状态,如果不存活则kill掉keepalived

    1.nginx故障切换脚本

    [root@lb01 ~]# vim check_web.sh
    #!/bin/sh
    nginxpid=$(ps -C nginx --no-header|wc -l)
    #1.判断Nginx是否存活,如果不存活则尝试启动Nginx
    if [ $nginxpid -eq 0 ];then
        systemctl start nginx
        sleep 3
        #2.等待3秒后再次获取一次Nginx状态
        nginxpid=$(ps -C nginx --no-header|wc -l) 
        #3.再次进行判断, 如Nginx还不存活则停止Keepalived,让地址进行漂移,并退出脚本  
        if [ $nginxpid -eq 0 ];then
            systemctl stop keepalived
       fi
    fi
    #给脚本增加执行权限
    [root@lb01 ~]# chmod +x /root/check_web.sh

    2.调用脚本

    [root@lb01 ~]# vim /etc/keepalived/keepalived.conf
    global_defs {           
        router_id lb01      
    }
    #每5秒执行一次脚本,脚本执行内容不能超过5秒,否则会中断再次重新执行脚本
    vrrp_script check_web {
        script "/root/check_web.sh"
        interval 5
    }
    vrrp_instance VI_1 {
        state MASTER        
        interface eth0      
        virtual_router_id 50    
        priority 100        
        advert_int 1        
        authentication {    
            auth_type PASS  
            auth_pass 1111  
        }
        virtual_ipaddress { 
            10.0.0.3    
        }
        #调用并运行脚本
        track_script {
            check_web
        }
    }
    #在Master的keepalived中调用脚本,抢占式,仅需在master配置即可。(注意,如果配置为非抢占式,那么需要两台服务器都使用该脚本)
  • 相关阅读:
    战国时期主张合众联横的两位游士
    解读蓝帆“取势,明道,优术”
    云起龙骧
    取势明道优术_百度百科
    曾鸣[长江商学院教授]_互动百科
    E=MC2
    罗斯福6号_百度百科
    时尚大帝_百度视频
    群星云集 BOSS上海时装秀—情沪魅影- 在线观看
    林志玲“情沪魅影”时装片展情缘-中新网
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13652566.html
Copyright © 2011-2022 走看看