Nginx-高可用及 KeepAlived 配置

目录

一、高可用场景及解决方案

二、配置 KeepAlived

1.yum 安装 KeepAlived

2.修改配置文件

3.启动 KeepAlived

4.测试


一、高可用场景及解决方案

       高可用(High Avaliability,简称HA)就是主机的冗余和接管。Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。

        Keepalive起初是为LVS(Linux Virtual Server 虚拟的服务器集群负载均衡系统)设计的,一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

        后来Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,它能够保证当个别节点宕机时,通过VRRP可以实现网络不间断稳定运行,因此Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

KeepAlive 官网

二、配置 KeepAlived

1.yum 安装 KeepAlived

准备两台虚机,nginx01为主服务器,nginx02为备用机(backup),两台虚机都需要安装 KeepAlived

[root@nginx01 ~]# yum install -y keepalived

2.修改配置文件

对默认配置文件一些不必要的内容进行了修改,最终的内容如下:

主服务:

[root@nginx01 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
 
 # 路由id可自定义,可以是ip好辨认 
 router_id 101

}

# 虚拟ip的配置
vrrp_instance test {  # vrrp 内网通讯协议  test:实例名称,可自定义
    state MASTER    # 主服务器为 MASTER,备份服务器则为 BACKUP
    interface ens32    # ens32: 网卡名称(根据实际情况,ifconfig可查)
    virtual_router_id 51    # 主、备机的 id需要相同
    priority 100    # 主、备机竞选机制的优先级,值越高越优先
    advert_int 1    # 间隔检测时间
    authentication {    # 同一组 KeepAlived 的认证配置
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {    # 虚拟出来的ip地址,可填多个 
        192.168.78.200
    }
}

备用机:

[root@nginx02 ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
 
 # 路由id可自定义,可以是ip好辨认 
 router_id 100

}

# 虚拟ip的配置
vrrp_instance test {  # vrrp 内网通讯协议  test:实例名称,可自定义
    state BACKUP    # 主服务器为 MASTER,备份服务器则为 BACKUP
    interface ens32    # ens32: 网卡名称(根据实际情况,ifconfig可查)
    virtual_router_id 51    # 主、备机的 id需要相同
    priority 50    # 主、备机竞选机制的优先级,值越高越优先
    advert_int 1    # 间隔检测时间
    authentication {    # 同一组 KeepAlived 的认证配置
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {    # 虚拟出来的ip地址,可填多个 
        192.168.78.200
    }
}

3.启动 KeepAlived

主、备机都需要启动服务:

[root@nginx01 ~]# systemctl start keepalived.service 
[root@nginx01 ~]# systemctl enable keepalived.service 
[root@nginx01 ~]# systemctl status keepalived.service 

[root@nginx01 ~]# ip a # 查看ip,发现主服务器多出个虚拟ip,而备用机没有,因为主服务器优先级高

4.测试

在 cmd 里 先ping 虚拟ip 200(此时虚拟ip在 nginx01),可以通,然后把 nginx01 关机,出现一个“请求超时”,后面继续可以ping通

此时虚拟ip来到 nginx02:

在浏览器访问200虚拟ip也是来到nginx02这台服务器:

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stars.Sky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值