如何在 Debian 11 上安装 HAProxy
在此页
- 先决条件
- 设置后端 Web 服务器
- 安装 HAProxy
- 配置 HAProxy
- 验证 HAProxy
- 结论
HAProxy 是一种免费、开源且可靠的高可用性和负载均衡解决方案。它将负载分布在多个应用服务器上并简化请求处理任务。它可以安装在所有主要的 Linux 操作系统上。它因其效率、可靠性以及低内存和 CPU 占用空间而广受欢迎。
在这篇文章中,我们将解释如何在 Debian 11 系统上安装 HAProxy。
先决条件
- 为 HAProxy 运行 Debian 11 的服务器。
- 两台为 Apache 后端服务器运行 Debian 11 的服务器。
- 在所有服务器上都配置了根密码。
设置后端 Web 服务器
出于本教程的目的,您将需要设置两个后端 Apache 服务器。
在第一台后端服务器上,使用以下命令安装 Apache 包:
apt-get install apache2 -y
安装 Apache 后,使用以下命令创建示例 Apache 索引页:
echo "<H1>Welcome to the first Apache Server</H1>" | tee /var/www/html/index.html
在第二台后端服务器上,使用以下命令安装 Apache 包:
apt-get install apache2 -y
接下来,使用以下命令创建示例 Apache 索引页面:
echo "<H1>Welcome to the second Apache Server</H1>" | tee /var/www/html/index.html
完成后,您可以继续下一步。
安装 HAProxy
默认情况下,HAProxy 包含在 Debian 11 默认存储库中。您可以通过运行以下命令来安装它:
apt-get install haproxy -y
安装 HAProxy 后,启动 HAProxy 服务并使其在系统重启时启动:
systemctl start haproxy
systemctl enable haproxy
完成后,您可以继续下一步。
配置 HAProxy
接下来,您需要编辑 HAProxy 默认配置文件并定义后端 Web 服务器。
nano /etc/haproxy/haproxy.cfg
添加以下行:
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.1.10:80 check
server backend02 192.168.1.11:80 check
完成后保存并关闭文件。
其中:192.168.1.10为第一台Apache后端服务器的IP地址,192.168.1.11为第二台Apache后端服务器的IP地址。
接下来,重新启动 HAProxy 服务以应用更改:
systemctl restart haproxy
您现在可以使用以下命令检查 HAProxy 的状态:
systemctl status haproxy
您将获得以下输出:
? haproxy.service - HAProxy Load Balancer
Loaded: loaded (/lib/systemd/system/haproxy.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-11-07 03:47:14 UTC; 9s ago
Docs: man:haproxy(1)
file:/usr/share/doc/haproxy/configuration.txt.gz
Process: 86678 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=0/SUCCESS)
Main PID: 86680 (haproxy)
Tasks: 3 (limit: 4679)
Memory: 34.2M
CPU: 61ms
CGroup: /system.slice/haproxy.service
??86680 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
??86682 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -S /run/haproxy-master.sock
Nov 07 03:47:14 debian11 systemd[1]: Starting HAProxy Load Balancer...
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_front started.
Nov 07 03:47:14 debian11 systemd[1]: Started HAProxy Load Balancer.
Nov 07 03:47:14 debian11 haproxy[86680]: [NOTICE] 310/034714 (86680) : New worker #1 (86682) forked
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.
Nov 07 03:47:14 debian11 haproxy[86680]: Proxy apache_backend_servers started.
验证 HAProxy
此时,HAProxy 已配置并运行。现在,是时候测试 HAProxy 了。
打开您的 Web 浏览器并输入 URL http://your-haproxy-ip。你会看到 HAProxy 在每次刷新后都在一个接一个地向后端服务器发送请求。


结论
恭喜!您已在 Debian 11 上成功安装 HAProxy。您现在可以在生产环境中实施 HAProxy 以提高 Web 应用程序的性能和可用性。