原理图:

环境:

一台虚拟机里面分别安装两台CentOs7,并在两台centOs7里面分别安装nginxkeepalived

不会安装的小伙伴戳:安装nginx(官网下载编译安装)_p&f°的博客-CSDN博客

以及:Keepalived安装_p&f°的博客-CSDN博客

配置:

1、nginx安装完毕即可,无需修改配置。在index.html里面修改下,以区分访问到不同的nginx

2、分别修改主备keepalived配置

  2.1 修改ip为129的主机配置

(1)找到配置文件,如图

 (2)主配置keepalived.conf内容如下

! Configuration File for keepalived

global_defs {
   #路由id:当前安装keepalived节点主机的标识符,全局唯一
   router_id keep_129
}

#计算机节点
vrrp_instance VI_1 {
    # 表示的状态,当前的129为nginx的主节点,MASTER/BACKUP
    state MASTER
    # 当前实例绑定的网卡
    interface ens32
    # 保证主备节点一致
    virtual_router_id 51
    # 优先级/权重,谁的优先级高,在MASTER挂掉后,救能成为MASTER
    priority 100
    # 主备之间同步检测的时间间隔,默认1s
    advert_int 1
    # 认证授权的密码,防止非法节点的进入(主与从相同即可)
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟ip(随便写,当要保证在同一个网段,比如我这里主机ip为192.168.217.129,那么要以192.168.217/24不变)
    virtual_ipaddress {
        192.168.217.2
    }
}

 (3)启动keepalived。

/usr/local/keepalived/sbin/keepalived

(4)访问虚拟ip:192.168.217.2 如图

 也可在命令行输入ip addr 查看,网卡ens32下有虚拟ip

   2.2 修改ip为130的从机配置,步骤和2.1主机一样,只是配置文件不同,如下

global_defs {
   #路由id:当前安装keepalived节点从机的标识符,全局唯一
   router_id keep_130
}

#计算机节点
vrrp_instance VI_1 {
    # 表示的状态,当前的130为nginx的从节点,MASTER/BACKUP
    state BACKUP
    # 当前实例绑定的网卡
    interface ens32
    # 保证主备节点一致
    virtual_router_id 51
    # 优先级/权重,谁的优先级高,在MASTER挂掉后,救能成为MASTER
    priority 80
    # 主备之间同步检测的时间间隔,默认1s
    advert_int 1
    # 认证授权的密码,防止非法节点的进入(主与从相同即可)
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    # 虚拟ip
    #(随便写,当然我这边在虚拟机中要保证在同一个网段,比如我这里主机ip为192.168.217.129,
    #那么要以192.168.217同网段不变)
    virtual_ipaddress {
        192.168.217.2
    }
}

启动后,此时输入命令ip addr查看,ens32下没有虚拟ip。因为129主机正常运行,符合猜想情况。

3、把129主机keepalived停止,那么继续访问vip:192.168.217.2。此时访问的就是130从机了。

 访问192.168.217.2,结果如图,符合实际情况。over!!

延续:

看到这可能小伙伴会说要是把129主机的nginx挂了,而不是挂129主机的keepalived,继续访问虚拟ip:192.168.217.2会怎么样?哈哈哈哈,当然是访问报错啊,因为虚拟ip还是和主机绑定的。那有什么办法实现不间断访问呢?请看Keepalived配置Nginx自动重启,实现7x24小时不间断服务_p&f°的博客-CSDN博客

扩展:把keepalived注册为系统服务(这样就可以像启动、关闭、重启防火墙一样简单操作,而不用在需要关闭它时,还要查看端口号,然后再用kill -9关闭)

1、进入到之前解压keepalived后的文件夹中

cd /home/software/keepalived-2.2.7/keepalived/

2、然后进入此目录下的 etc 文件夹中

3、分别复制以下文件到指定位置(有两份照着复制就行)

cp init.d/keepalived /etc/init.d/
cp sysconfig/keepalived /etc/sysconfig/

 4、刷新

systemctl daemon-reload

5、启动,查看,完毕!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐