Nginx-高可用及 KeepAlived 配置

目录

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

二、配置 KeepAlived

1.yum 安装 KeepAlived

2.修改配置文件

3.启动 KeepAlived

4.测试


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

Nginx-高可用及 KeepAlived 配置_第1张图片       高可用(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,而备用机没有,因为主服务器优先级高

Nginx-高可用及 KeepAlived 配置_第2张图片

4.测试

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

Nginx-高可用及 KeepAlived 配置_第3张图片

此时虚拟ip来到 nginx02:

Nginx-高可用及 KeepAlived 配置_第4张图片在浏览器访问200虚拟ip也是来到nginx02这台服务器:

Nginx-高可用及 KeepAlived 配置_第5张图片 

你可能感兴趣的:(Nginx,nginx,运维,网络)