• keepalived配置Nginx高可用


    keepalived基于VRRP协议,组件免费,可以解决单点故障,实现高可用HA机制。keepalived可以用于解决Nginx高可用问题。

    • 云服务器不采用keepalived,云服务厂商可能不提供虚拟IP服务,可以直接使用云负载均衡服务。

    1 keepalived

    1.1 VRRP协议与原理

    虚拟路由冗余协议 VRRP,是解决内网单机故障的路由协议,构建有多个路由器MASTER BACKUP,采用虚拟IP机制(用户访问虚拟ip,渲染出主节点;当主节点故障,心跳检测到故障,虚拟IP指向备用节点)。

    配置高可用主备节点,机器配置需要相同。备用节点配置过低,大量请求进来会瞬间宕机,无法保证高可用。

    VRRP原理

    VRRP将局域网内的一组路由器划分在一起,称为一个备份组。备份组由一个Master路由器和多个Backup路由器组成,功能上相当于一台虚拟路由器。

    VRRP备份组具有以下特点:

    • 虚拟路由器具有IP地址,称为虚拟IP地址。局域网内的主机仅需要知道这个虚拟路由器的IP地址,并将其设置为缺省路由的下一跳地址。
    • 网络内的主机通过这个虚拟路由器与外部网络进行通信。
    • 备份组内的路由器根据优先级,选举出Master路由器,承担网关功能。其他路由器作为Backup路由器,当Master路由器发生故障时,取代Master继续履行网关职责,从而保证网络内的主机不间断地与外部网络进行通信。

    2 安装keepalived与配置双机主备

    官网下载https://www.keepalived.org/download.html

    # 解压缩
    cd keepalived-2.0.18/
    # 安装依赖
    yum -y install libnl libnl-devel
    # 初始配置路径
    ./configure --prefix=/usr/local/keepalived --sysconf=/etc
    # 编译,安装
    make && make install
    
    • prefix: 安装位置
    • sysconf:核心配置文件位置,固定位置。改为其它,启动报错。

    配置192.168.233.130/131两台机器的核心配置

    global_defs {
        # 路由id, 当前安装keepalived节点的主机标识符,保证全局唯一
        router_id LVS_130
    }
    
    vrrp_instance VI_1 {
        # 表示节点是MASTER,还是BACKUP
        state MASTER
        # 该实例绑定的网卡
        interface ens33
        # 保证主备节点一致即可
        virtual_router_id 51
        # 权重,主节点挂掉后,选举出优先级更高的节点作为主节点
        priority 100
        # 心跳间隔,主备节点之间同步检查时间间隔,默认1s
        advert_int 1
        # 认证权限密码,防止非法节点进入
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        # 设置虚拟ip,可以多个
        virtual_ipaddress {
            192.168.233.120
        }
    }
    
    • 131节点的配置文件与主节点配置基本一致,需要修改路由id、state改为BACKUP、调低权重。

    启动keepalived,查看ip addr可以看到虚拟网卡信息。ps查看进程信息。

    inet 192.168.233.120/32 scope global ens33
    
    ps -ef | grep keepalived
    

    将keepalived注册为服务

    # 将源码目录下文件拷贝到启动目录
    cp init.d/keepalived /etc/init.d/
    cp sysconfig/keepalived /etc/sysconfig/
    
    systemctl daemon-reload
    systemctl start keepalived.service
    

    当主节点MASTER和备用节点BACKUP同时运行起来,只有MASTER的网卡信息中有虚拟IP。当MASTER宕机(主机keepalived挂掉)时,BACKUP启用,网卡中出现虚拟IP;在MASTER修复重新启动后,运行主机切换为原MASTER。

    针对于访问哪台节点,可以监控nginx访问日志:tail access.log -f 。

    参考资料

    https://www.jianshu.com/p/4b46586e79aa

    版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    C#细说多线程(下)
    C#细说多线程(上)
    C#:进程、线程、应用程序域(AppDomain)与上下文分析
    C#委托与事件
    SQL Server 查询优化器运行方式
    SQL优化之索引分析
    C#反射机制
    Sql注入
    JAVA内存泄漏解决办法
    spring4声明式事务—02 xml配置方式
  • 原文地址:https://www.cnblogs.com/dtyy/p/14249320.html
Copyright © 2020-2023  润新知