zoukankan      html  css  js  c++  java
  • linux---集群架构初探(23)Nginx双机热备---Keepalived高可用

    Keepalived作用

    若当前设备发生故障,启用备用设备,解决单点故障。

    工作流程

    1.将多台设备加入到一个虚拟组(拥有虚拟IP和虚拟MAC地址)

    2.用户将数据发送至虚拟组,虚拟组会将目标地址转换成当前的master设备(主设备)的IP和MAC。

    3.若master设备出现故障,则从其他备用设备中启用优先级最高的一台作为master设备。

    使用协议

    VRRP 虚拟路由冗余协议 Virtual Router Redundancy Protocol

    裂脑

    可能会出现的故障:裂脑,虚拟组中心跳线断开,有两台及以上的设备认为自己是主设备。

    模拟环境

    两台负载均衡服务器lb01(192.168.1.5)  lb02(192.168.1.6)

    安装Keepalived

    yum install keepalived -y

    systemctl start keepalived
    systemctl enable keepalived

    配置文件

    位置:/etc/keepalived/keepalived.conf

    注:这里只留下了最基本的几行,先跑通。

    advert_int是主备设备通讯时间间隔,已确认对方还“正常活着”。(心跳线)

    查看发现在lb01中的网卡ens33下多了一个IP地址

    而在lb02中的网卡ens33下没有该IP,说明目前lb01是主设备

    测试漂移

    漂移即指当主设备宕机时,master状态从lb01漂到lb02

    打开物理主机的cmd,输入arp -a

    可以看到192.168.1.3也是有MAC地址的,并且与192.168.1.5相同。

    在lb01中使用命令:tail -f /var/log/nginx/access.log

    打开浏览器,在地址栏输入192.168.1.3,发现lb01中access.log文件中记录了此次请求。

    将lb01关机,在lb02中使用命令tail -f /var/log/nginx/access.log,再刷新浏览器,发现可以正常访问,并且在lb02中的access.log中记录了此次请求。

    说明漂移成功。(此时打开lb01,会发现主设备又变成lb01了,因为其优先级更高)

  • 相关阅读:
    OnMeasureItem和OnDrawItem的区别和联系
    DockPanel 类
    C# 源码 AForge.NET
    ystem.Windows.Forms.SplitContainer : ContainerControl, ISupportInitialize
    System.Windows.Forms.Control : Component, IOleControl, IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject....
    System.ComponentModel.Component : MarshalByRefObject, IComponent, IDisposable
    System.Windows.Forms.ListView : Control
    vs2013 密钥_
    系统封装 EasyBoot如何将WIN7安装版提取到光盘
    系统封装 ES3使用方法
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/13185651.html
Copyright © 2011-2022 走看看