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 监听端口上的传入请求 80 的 192.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 官方文档