使用Keepalived实现Nginx的双机主备高可用

1、概述

前面我们聊过使用 Nginx 为 后端Tomcat 做负载均衡、高可用,但是这时Nginx又成了单点,如果Nginx不幸挂掉,整个网站便无法访问。

此时我们就会用到另一个软件 —— Keepalived。

Keepalived 是一个用 C 编写的路由软件,Keepalived 会生成一个虚拟IP,此虚拟IP与多台真实的服务器的IP绑定,当用户发来请求到虚拟IP时,请求先路由到主服务器,当主服务器宕机后,请求会路由到备用服务器,以达到高可用的目的。

理论上两台或多台Nginx服务器的硬件配置应该一致,这样路由改变时,性能不会有太大的差别。

下面我们用一个例子,来实际操作一下。

2、场景说明

在两台服务器上,安装Nginx,并启动。

在两台服务器上安装Keepalived,进行配置,为Nginx做负载均衡,实现双机主备高可用。

A服务器配置为主机,B服务器配置为备机。

虚拟IP:192.168.1.88

A服务器IP(主):192.168.1.144

B服务器IP(备):192.168.1.22

3、安装Keepalived

在两台服务器上都需要安装Keepalived。

1)下载Keepalived

可以到Keepalived官网(https://www.keepalived.org)下载

image

图片来源于官网

image

图片来源于官网

2)将Keepalived压缩包,拷贝到两台服务器的 /home 目录下

3)解压Keepalived压缩包

在Linux系统执行 # tar -zxvf keepalived-2.2.4.tar.gz 命令进行解压。

4)安装依赖包

# yum -y install libnl libnl-devel

# yum install -y openssl openssl-devel

5)进入解压后的Keepalived目录

6)执行配置命令

# ./configure --prefix=/usr/local/keepalived --sysconf=/etc

7)执行编译并安装命令

make && make install

8)安装成功后,在 /etc/keepalived 目录下,会看到 keepalived.conf 文件。

4、配置 keepalived.conf 文件

进入 /etc/keepalived 目录下,修改 keepalived.conf 文件。

A服务器配置如下:

! Configuration File for keepalived

global_defs {
   
   # 全局唯一的主机标识
   router_id server_a
   
}

vrrp_instance VI_1 {

    # 标识是主节点还是备用节点,值为 MASTER 或 BACKUP
    state MASTER
    # 绑定的网卡
    interface ens33
    # 虚拟路由id,保证主备节点是一致的
    virtual_router_id 51
    # 权重
    priority 100
    # 同步检查时间,间隔默认1秒
    advert_int 1
    # 认证授权的密码,所有主备需要一样
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟IP
    virtual_ipaddress {
        192.168.1.88
    }
}

B服务器配置如下:

! Configuration File for keepalived

global_defs {
   
   router_id server_b
   
}

vrrp_instance VI_1 {
    
    # 设置为备机
    state BACKUP
    interface ens33
    virtual_router_id 51
    # 权重设置的要比主机低
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟IP需要主备设置成一样
    virtual_ipaddress {
        192.168.1.88
    }
}

5、启动Keepalived

1)进入 /usr/local/keepalived/sbin 目录

2)输入命令 # ./keepalived 即可。

image

此时,查看网卡,会发现主机的IP地址多了 192.168.1.88

image

6、停止A服务器,看虚拟IP是否路由到B服务器

经试验可知,A服务器关闭后,虚拟IP便路由到了B服务器。

image

7、综述

好了,至此,Keepalived的双机主备机制已经实现了。后面我们还会介绍Keepalived双主热备的配置方式。

希望大家多多留言交流,共同进步。

你可能感兴趣的:(使用Keepalived实现Nginx的双机主备高可用)