keepalive-haproyx高可用介绍

发布时间 2023-05-29 23:07:54作者: BNTang

假设我们现在开发了一个应用应用的端口号为 8080,这个应用我们想让它去实现一个负载均衡的访问,就是说我们有两台服务器都部署了我们的 8080 应用,我们想让它一会访问 ip 为: 192.168.0.1 的,一会访问 192.168.0.2 的,我们之前的做法是不是在这两台服务器之上部署一台 Nginx 来进行实现的,如下图:

image-20230528184428332

后续我们只需要配置 Nginx 的算法即可,负载均衡或轮询,就可以达到来回切换的访问我们的应用。这个时候有一个问题,就是说我们的 Nginx 宕机了咋办,宕机了我们的应用服务用户就使用不了了,这个时候我们就需要去解决下这个问题。

这个时候就需要我们将 Nginx 实现可以轮询又可以高可用了,就是一个 Nginx 宕机了还有一台 Nginx,说到这里我们的架构就演变为了如下图了:

image-20230528184942833

好了,我们的问题貌似解决,但是呢,我想让这两个 Nginx 的访问可以进行轮询就是一会访问左边的一会访问右边的,这种该如何进行实现呢,不可能我们继续在这两台的 Nginx 基础上在部署一台来进行转发吧,所以这里就要提到我所要介绍的一个技术叫做 haproyx 来做负载均衡,在 haproyx 当中分别配置左边和右边的 Nginx 地址即可,这样我们的 Nginx 就可以实现负载均衡。

加入 haproyx 之后我们的架构图再次进行演变:

image-20230528190709193

我们现在还是达不到入口是单一的,我们现在这个结构图是多个入口,那我们怎样才可以实现单入口,这里就要在介绍一位朋友叫做 keepalive,它可以实现 IP 漂移,在 Keepalive 当中配置 haproyx,如果两个 haproyx 最开始的状态都是健康的,我们的 keepalive 可能是指向的左边的,如果左边的不健康了,keepalive 会自动将 IP 漂移到右边的 haproyx 上让我们的应用进行访问。

?> 最终架构图

image-20230528191210461

我们下一篇文章将介绍如何在华为云进行搭建。