如何在 Ubuntu 22.04 LTS 上安装 HAProxy

在本教程中,我们将向您展示如何在 Ubuntu 22.04 LTS 上安装 HAProxy。 对于那些不知道的人,HAProxy 是一个开源负载均衡器代理,用于以高性能运行不同的 Web 应用程序并通过将负载分布在不同的服务器上来提高速度。 此外,如果任何服务器发生故障,HAProxy 会检测到它并将该服务器的 Web 流量重新路由到其他服务器,这样客户端就不会遇到任何中断。

本文假设您至少具备 Linux 的基本知识,知道如何使用 shell,最重要的是,您将网站托管在自己的 VPS 上。 安装非常简单,假设您在 root 帐户下运行,如果不是,您可能需要添加 ‘sudo‘ 到命令以获取 root 权限。 我将向您展示在 Ubuntu 22.04 (Jammy Jellyfish) 上逐步安装 HAProxy。 对于 Ubuntu 22.04 和任何其他基于 Debian 的发行版,如 Linux Mint、Elementary OS、Pop!_OS 等,您可以按照相同的说明进行操作。

先决条件

  • 运行以下操作系统之一的服务器:Ubuntu 22.04、20.04 和任何其他基于 Debian 的发行版,如 Linux Mint。
  • 建议您使用全新的操作系统安装来防止任何潜在问题。
  • 对服务器的 SSH 访问(或者如果您在桌面上,则只需打开终端)。
  • 一个 non-root sudo user或访问 root user. 我们建议充当 non-root sudo user,但是,如果您在充当 root 时不小心,可能会损害您的系统。

在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 HAProxy

步骤 1. 首先,通过运行以下命令确保所有系统包都是最新的 apt 终端中的命令。

sudo apt update sudo apt upgrade sudo apt install wget apt-transport-https gnupg2 software-properties-common

步骤 2. 安装 Apache Ubuntu 22.04 上的 HTTP 服务器。

现在运行下面的命令来安装最新版本的 Apache 到您的 Ubuntu 系统:

sudo apt install apache2

安装成功后,启用 Apache (在系统启动时自动启动),启动并使用以下命令验证状态:

sudo systemctl enable apache2 sudo systemctl start apache2 sudo systemctl status apache2

您可以使用以下命令确认 Apache2 版本:

apache2 -v

步骤 3. 设置 Apache Web 服务器作为后端服务器。

现在我们设置两个 Apache Web 服务器作为后端服务器来执行教程:

  • 第一个后端服务器,安装 Apache 打包并创建示例 Apache 使用以下命令索引页面:
echo "<H1>Welcome to the first Apache Server</H1>" | tee /var/www/html/index.html
  • 第二个后端服务器,安装 Apache 包 创建示例 Apache 使用以下命令索引页面:
echo "<H1>Welcome to the second Apache Server</H1>" | tee /var/www/html/index.html

步骤 4. 在 Ubuntu 22.04 上安装 HAProxy。

默认情况下,HAProxy 在 Ubuntu 22.04 基础存储库中可用。 现在运行以下命令将最新稳定版本的 HAProxy 安装到您的 Ubuntu 系统:

sudo apt install haproxy

成功安装后,启用 HAProxy(系统启动时自动启动),启动,并使用以下命令验证状态:

sudo systemctl enable haproxy sudo systemctl start haproxy sudo systemctl status haproxy

确认安装并检查已安装的 HAProxy 构建版本:

haproxy -v

步骤 5. 配置 HAProxy。

现在编辑 HAProxy 默认配置文件并使用您喜欢的文本编辑器定义后端 Web 服务器:

nano /etc/haproxy/haproxy.cfg

添加你的两个后端 Apache 服务器:

frontend apache_front         # Frontend listen port - 80         bind *:80         # Set the default backend         default_backend    apache_backend_servers         # Enable send X-Forwarded-For header         option             forwardfor    # Define backend backend apache_backend_servers                                                                                                                              # Use roundrobin to balance traffic         balance            roundrobin         # Define the backend servers         server             backend01 192.168.77.200:80 check         server             backend02 192.168.77.201:80 check

Save 和 close 文件,然后使用 systemctl 命令:

sudo systemctl restart haproxy

步骤 6. 配置防火墙。

现在我们设置一个简单的防火墙(UFW) Apache 允许对 HTTP 和 HTTPS 的默认 Web 端口进行公共访问:

sudo ufw allow OpenSSH sudo ufw allow 'Apache Full' sudo ufw enable

步骤 7. 测试 HAProxy。

成功配置和安装后,现在打开您的 Web 浏览器并输入 URL https://your-haproxy-ip-address. 您将看到 HAProxy 在每次刷新后都向后端服务器发送请求。

恭喜! 您已成功安装 HAProxy。 感谢您使用本教程在 Ubuntu 22.04 LTS Jammy Jellyfish 系统上安装 HAProxy 高性能 TCP/HTTP 负载均衡器。 如需更多帮助或有用信息,我们建议您查看 HAProxy 官方网站.