如何在 Ubuntu 20.04 LTS 上安装和配置 HAproxy

HAproxy 是一个开源的轻量级包,它为基于 TCP 和 HTTP 的程序提供高可用性和负载平衡。 它在 Web 和应用程序服务器之间分配负载。 HAproxy 可用于几乎所有 Linux 发行版。 它是一种广泛使用的负载均衡器,因其效率、可靠性以及低内存和 CPU 占用而广受欢迎。 在这篇文章中,我们将解释如何在 Ubuntu 系统上安装和配置 HAproxy。

我们已经设置了三台机器。 我们将在一台服务器上安装 HAproxy,然后 Apache 两台服务器上的 Web 服务器。 然后,我们的 HAproxy 服务器将充当负载均衡器,并将负载分配给 Apache 网络服务器。

笔记: 这篇文章中提到的过程和命令已经过测试 Ubuntu 20.04 LTS(Focal Fossa)。 相同的过程也适用于 Debian 和 Mint 发行版。

网络详情

我们将使用三台 Ubuntu 服务器; 都在同一个网络上。 我们服务器的详细信息如下:

主机名:HAproxy,IP地址:192.168.72.157 (前端服务器)

主机名:web-server1,IP地址:192.168.72.158 (后端服务器)

主机名:web-server2,IP地址:192.168.72.159 (后端服务器)

笔记: 你必须有 sudo 所有服务器的权限。

我们将一台机器配置为负载均衡器,另外两台作为 Web 服务器。 HAproxy 服务器将是我们的前端服务器,它将接收来自用户的请求并将它们转发到两个 Web 服务器。 Web 服务器将是我们的后端服务器,将接收这些转发的请求。

这是我们的设置的样子:

设置 Web 服务器 – 后端服务器

在本节中,我们将设置两个 Web 服务器(网络服务器1网络服务器2) 作为我们的后端服务器。

在 web-server1(192.168.72.158) 上

在您的 Web 服务器中执行以下步骤。 确保将主机名和 IP 地址替换为 Web 服务器的相关 IP 地址和主机名。

1.配置hosts文件

网络服务器1, 编辑 /etc/hosts 文件:

$ sudo 纳米 /ETC/主机

然后添加主机名条目 代理服务器 服务器如下:

HAproxy 的主机名 HAproxy 的 IP 地址

在我们的场景中,它将是:

HA代理 192.168.72.157

2. 设置 Apache 网络服务器

现在安装 Apache Web 服务器在终端中使用以下命令。 您也可以访问我们的帖子 如何安装 Apache Linux 上的网络服务器。

$ sudo 易于 安装 阿帕奇2

然后启用并启动 Apache 在终端中使用以下命令提供服务:

$ sudo 系统控制 使能够 阿帕奇2
$ sudo systemctl 启动 apache2

网络服务器1 在终端中使用以下命令:

$ 回声

你好!这是 webserver1:192.168.72.158

| sudo 球座 /变量/万维网/html/索引.html

如果您的系统上正在运行防火墙,您需要允许 Apache 通过它的交通:

$ sudo ufw允许 80/tcp

然后重新加载防火墙配置:

$ ufw重新加载

现在尝试在您的网络浏览器中通过键入来访问该站点 https:// 后跟 Web 服务器的 IP 地址或主机名。

网址:// 主机名或 IP 地址

或者,您也可以使用 curl 命令来测试网页。

$ curl <主机名或 IP 地址>

在网络服务器 2 192.168.72.159 上)

在您的第二个 Web 服务器中执行以下步骤。 确保将主机名和 IP 地址替换为 Web 服务器的相关 IP 地址和主机名。

1.配置hosts文件

网络服务器2编辑 /etc/hosts 文件:

$ sudo 纳米 /ETC/主机

然后添加主机名条目 代理服务器 服务器如下:

HA代理 192.168.72.157

2.安装 Apache 网络服务器

现在安装 Apache Web 服务器在终端中使用以下命令。

$ sudo 易于 安装 阿帕奇2

然后启用并启动 Apache 在终端中使用以下命令提供服务:

$ sudo 系统控制 使能够 阿帕奇2
$ sudo systemctl 启动 apache2

在终端中使用以下命令为 web-server2 创建一个索引文件:

$ 回声

你好!这是 webserver2:192.168.72.159

| sudo 球座 /变量/万维网/html/索引.html

允许 Apache 在防火墙中:

$ sudo ufw允许 80/tcp

然后重新加载防火墙配置:

$ ufw重新加载

现在尝试在您的网络浏览器中通过键入来访问该站点 https:// 后跟 IP 地址或主机名。

网址:// 主机名或 IP 地址

或者,您可以使用 curl 命令来测试网页。

$ curl <主机名或 IP 地址>

现在我们的 Apache 网络服务器已准备就绪。

设置 HAproxy 负载均衡器-前端服务器

在本节中,我们将为我们的应用设置一个 HAproxy 负载均衡器 网络服务器. 此 HAproxy 服务器将充当前端服务器并接受来自客户端的传入请求。

代理服务器 服务器 (192.168.72.157),执行以下步骤来设置负载均衡器。

1.配置hosts文件

编辑 /etc/hosts 在终端中使用以下命令文件:

$ sudo 纳米 /ETC/主机

为两者添加以下主机名条目 Apache Web 服务器及其自己的主机名

192.168.72.157 HA代理
192.168.72.158 网络服务器1
192.168.72.159 网络服务器2

现在保存并 close 这 /etc/hosts 文件。

安装 HAproxy 负载均衡器

现在在这一步中,我们将在我们的一台 Ubuntu 服务器 (192.168.72.157) 上安装 HAproxy。 为此,请在终端中使用以下命令更新 apt:

$ sudo apt-get 更新

然后使用以下命令更新软件包:

$ sudo apt-get 升级

现在在终端中使用以下命令安装 HAproxy:

$ sudo sudo 易于 安装 代理服务器

HAproxy 服务器安装完成后,您可以在终端中使用以下命令进行确认:

$ 代理服务器 -v

它将向您显示系统上安装的 HAproxy 版本,以验证 HAproxy 是否已成功安装。

将 HAproxy 配置为负载均衡器

在下一节中,我们将 HAproxy 配置为负载均衡器。 为此, 编辑 /etc/haproxy/haproxy.cfg 文件:

$ sudo 纳米 <强的>>ETC/代理服务器/haproxy.cfg强的>

在 haproxy.cfg 文件中附加以下行,将 IP 地址替换为您自己的 IP 地址。

前端网络前端 在上面的配置行中告诉 HAproxy 监听端口上的传入请求 80192.168.72.157 然后将它们转发到配置下的后端服务器 后端 网络后端. 配置时,将 IP 地址替换为 Web 服务器的相关 IP 地址。

配置 HAProxy 监控

使用 HAproxy 监控,您可以查看很多信息,包括服务器状态、数据传输、正常运行时间、会话速率等。要配置 HAproxy 监控,请在位于的配置文件中附加以下行 /etc/haproxy/haproxy.cfg

听统计
绑定 192.168.72.157:8080

模式http
期权转发
选项 httpclose
统计数据 使能够

统计显示传奇
统计刷新 5s
统计信息 /统计数据
统计领域 Haproxy 统计
统计 auth kbuzdar:kbuzdar #监控的登录用户和密码

统计数据 admin 如果 真的
default_backend 网络后端

上述配置启用了 HAproxy “统计数据”页面使用 统计数据 指令并用 http 使用由定义的用户名和密码进行基本身份验证 统计认证 指示。

完成配置后,保存并 close 这 haproxy.cfg 文件。

现在在终端中使用以下命令验证配置文件:

$ 代理服务器 -C -F /ETC/代理服务器/haproxy.cfg

以下输出表明配置正确。

现在应用配置,重启 HAproxy 服务:

$ sudo systemctl 重启 haproxy.service

它将停止然后启动 HAproxy 服务。

要检查 HAproxy 服务的状态,命令是:

$ sudo systemctl 状态 haproxy.service

活跃(运行) 以下输出中的状态显示 HAproxy 服务器已启用并且运行良好。

以下是一些用于管理 HAproxy 服务器的其他命令:

为了启动 HAproxy 服务器,命令是:

$ sudo systemctl 启动 haproxy.service

为了停止 HAproxy 服务器,命令将是:

$ sudo systemctl stop haproxy.service

如果您想暂时禁用 HAproxy 服务器,命令将是:

$ sudo systemctl 禁用 haproxy.service

要重新启用 HAproxy 服务器,命令为:

$ sudo 系统控制 使能够 haproxy.service

测试 HAProxy

在测试 HAproxy 设置之前,请确保您已连接到 Web 服务器。 从您的 HAproxy 服务器,通过 IP 地址或主机名 ping 两个 Web 服务器。

$ 主机名或 IP 地址

以下输出显示 HAproxy 服务器可以访问两个 Web 服务器。

使用 Web 浏览器测试 HA 代理

现在在您的 HAproxy 服务器中,打开任何 Web 浏览器并键入 https:// 后跟 HAproxy 服务器 IP 地址,在我们的例子中是 192.168.72.157。

网址://192.168.72.157

HAproxy 服务器将交替以循环方式将请求发送到两个 Web 服务器。 您可以通过重新加载网页几次来测试这一点。

这是我们访问时收到的回复 https://192.168.72.157 首次:

这是我们重新加载网页时收到的响应:

您还可以使用主机名代替 HAproxy 服务器 IP 地址。

使用测试 HA 代理 curl

您还可以使用 curl Linux 中的命令来测试 HAproxy 设置。 打开终端并输入 curl 后跟 HAproxy 服务器的 IP 地址或主机名。

$ curl 192.168.72.157

或者

$ curl 代理服务器

跑过 curl 命令几次,您将看到两个 Web 服务器之间的响应交替出现。

除了多次运行命令之外,您还可以运行以下一行脚本来测试 HAproxy 服务器:

$ 尽管 真的; curl 192.168.72.157; 睡觉 1; 完毕

测试 HAProxy 监控

要访问 HAproxy 监控页面,请键入 https:// 后跟 HAproxy 服务器的 IP 地址/主机名和端口 8080/stats:

网址://192.168.72.157:8080/统计数据

或者

网址://代理服务器:8080/统计数据

将出现以下身份验证框。 Enter 用户名密码 您之前在配置中进行了配置,然后按 好的.

这是我们的 HAproxy 服务器的统计报告。

在那里,您可以在 Linux 系统上安装和配置 HAproxy 负载均衡器。 我们刚刚讨论了 HAproxy 作为负载均衡器的基本设置和配置 Apache 网络服务器。 我们还查看了一些用于管理 HAproxy 服务器的命令。 最后,我们通过浏览器和 curl 命令。 有关更多信息,请访问 HAProxy 官方文档