hash 微信小程序 机器学习 azure variables Draggabilly click事件 jquery移除子元素 bootstrap日历控件 a标签去除下划线 java时间戳 lora开发 python字典类型 python正则表达式语法 python零基础教程 python插件 java正则表达 java集合 java自定义异常 java输出当前时间 java文件删除 linuxsudo命令 行业软件下载 python入门经典 风火云 js获取父节点 狮子狗皮肤 小票打印 mp4剪切合并大师 网络驱动 海蜘蛛软路由 oledbconnection js递归函数 分屏软件 stata HTA 主播音效 js绑定事件的方法 cad特性不显示 ps怎么做动画
当前位置: 首页 > 学习教程  > 编程学习

keepalived 小例子

2021/1/24 9:42:49 文章标签: keepalived

在上节 nginx负载均衡 后,本次添加了 keepalived 的使用例子。 准备工作: 两台虚拟机:centos7_1(192.168.1.201)、centos7_2(192.168.1.186) 两台虚拟机都装有 nginx 和 三个 tomcat&#xf…

在上节 nginx负载均衡 后,本次添加了 keepalived 的使用例子。

准备工作:

两台虚拟机:centos7_1(192.168.1.201)、centos7_2(192.168.1.186)

两台虚拟机都装有 nginx 和 三个 tomcat(负载均衡)

 

配置 201 的 keepalived,路径:/etc/keepalived/keepalived.conf,配置比较简单,都是从其他地方抄的

global_defs {
   router_id proxy1 
}
vrrp_script chk_nginx {
  script "/etc/keepalived/nginx_check.sh"
  interval 2    #健康检查周期
  weight -2     #优先级变化幅度
  fall 2         #判定服务异常的检查次数
  rise 1         #判定服务正常的检查次数
}
vrrp_instance VI_1 {
    state MASTER 
    interface ens33
    virtual_router_id 51
    priority 100
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.205
    }
    track_script {
        chk_nginx
    }
}

检查脚本 /etc/keepalived/nginx_check.sh,注意 nginx 路径

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    /mine/nginx/sbin/nginx #尝试重新启动nginx
    sleep 2  #睡眠2秒
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        killall keepalived #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
    fi
fi

配置 186 的 keepalived.conf,路径:/etc/keepalived/keepalived.conf,脚本和上面是一样的

global_defs {
   router_id proxy2
}
vrrp_script chk_nginx {
  script "/etc/keepalived/nginx_check.sh"
  interval 2
  weight -2 
  fall 2
  rise 1
}
vrrp_instance VI_1 {
    state BACKUP 
    interface ens33
    virtual_router_id 51
    priority 99
    nopreempt
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.205
    }
    track_script {
        chk_nginx
    }
}

然后,启动两个 keepalived

启动后就可以访问 虚拟 ip 192.168.1.205 了

201 关闭 keepalived 后,就由 186 提供服务,自动切换

重新启动 201 的 keepalived,就又变成 201 提供服务,原因是重新启动后 priority 100,比 186 的 priority 大,201 自动变成 master

两边都 killall keepalived 后,虚拟 ip 就无法再访问了(但 201 和 186 还是能访问的,只是由两个 keepalived 绑定的 vip 205 无法访问)

中间遇到的问题:

备用机 186 的 keepalived 一启动就自动变成 master

原因:centos7 的防火墙问题,解决方法:关闭 201 的防火墙就可以了, systemctl stop firewalld,其他方法未知

 

参考:

https://blog.51cto.com/xiexinmiao/1650888

https://blog.51cto.com/h11345/1570786

https://blog.51cto.com/superpcm/2095395

https://www.cnblogs.com/kevingrace/p/6138185.html


本文链接: http://www.dtmao.cc/news_show_1257738.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?