zoukankan      html  css  js  c++  java
  • Keepalived + haproxy双机高可用方案

    上一篇文章已经讲到了keepalived实现双机热备,且遗留了一个问题

    master的网络不通的时候,可以立即切换到slave,但是如果只是master上的应用出现问题的时候,是不会

    主动切换的。

    上篇文章地址:Keepalived 实现双机热备(一)

    那么这篇文章主要讨论解决这个问题

    我的方案是:

    写一个脚本,用于监控haproxy,当然,keepalive支持脚本扩展

    当master haproxy出现问题时,重启haproxy,如果重启不成功,则停掉master上面的keepalived

    也可以不重启haproxy,直接停掉keepalived,让backup服务器接管master

    这样haproxy出现故障,网站依然可用

    系统分布如下:

    ha主机 192.168.1.227:80

    ha备机 192.168.1.246

    keepalived 主机 192.168.1.227

    keepalived备机 192.168.1.246

    web1 http://192.168.1.226:8081/login

    web2 http://192.168.1.246:8888/login

    虚拟ip 192.168.1.99

    keepalive master 和 backup 配置

    vi /etc/keepalived/keepalived.conf

    增加红色部分

    ! Configuration File for keepalived
    #定义检查脚本
    vrrp_script check_haproxy {
            script "/etc/keepalived/check_haproxy.sh"
            interval 2
            weight 2
    }
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 192.168.200.1
       smtp_connect_timeout 30
       router_id LVS_DEVEL
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.1.99
        }
       #执行检查脚本
        track_script {
            check_haproxy
       }
    }

    编辑检查haproxy脚本

    /etc/keepalived/check_haproxy.sh

    #!/bin/bash
    A=`ps -C haproxy --no-header |wc -l`
    if [ $A -eq 0 ];then
    /etc/init.d/keepalived stop
    fi

    增加执行权限,注意别忘记了

    chmod 777 check_haproxy.sh

    重启keepalived即可

  • 相关阅读:
    express中 使用session与cookie
    mongoDB
    原生 js 实现 vue 的某些功能
    linux系统
    nodejs 程序(有的功能和前端js是不一样的)
    内网穿透技术
    webview
    PWA 应用
    计算机 和 互联网 知识
    css 图片 和 文本 的处理
  • 原文地址:https://www.cnblogs.com/tangyanbo/p/4428467.html
Copyright © 2011-2022 走看看