在 Debian 10 上安装 HAProxy 配置负载均衡服务器
负载平衡是在多个后端服务器之间分配传入 Web 流量的最常见做法。这使得应用程序具有高可用性,即使某些服务器由于某种原因出现故障也是如此。负载平衡提高了 Web 应用程序的效率和可靠性。 HAProxy 负载均衡器用于相同目的。它是工业中使用最广泛的负载均衡器。根据官方网站,HAProxy 被 AWS、Fedora、Github 等领先公司使用。
HAProxy 或高可用性代理提供高可用性和代理解决方案。它是用 C 语言编写的,工作在 TCP/IP 模型的网络层和应用程序层。最好的事情是它有一个免费的社区版本,并且它是一个开源应用程序。它适用于 Linux、FreeBSD 和 Solaris 操作系统。企业版也有,但有价格标签。
在本指南中,我们将了解如何在 Debian 10 上安装 HAProxy 并配置负载均衡服务器。
先决条件:
“sudo”访问所有机器以及在Linux终端运行命令的基本知识。
添加到负载均衡器和后端服务器的私有 IP 地址。
所有机器上均安装了 Debian 10 操作系统。
在 Debian 10 上安装 HAProxy
对于我们的指南,我们将假设以下 IP 地址配置:
HAProxy 负载均衡器 10.0.12.10
网络服务器1:IP地址:10.0.12.15
网络服务器2:IP地址:10.0.12.16
步骤 1. 更新 Debian 系统存储库和软件包
首先,在所有系统上运行以下命令将软件包更新到最新版本。
$ sudo apt upgrade -y
步骤:2 在后端服务器上安装Nginx
通过在每个后端服务器上安装 Nginx Web 服务器来准备后端服务器。您还可以选择安装其他 Web 服务器,例如 apache。
要安装 Nginx,请在环境中的每个后端服务器上运行以下命令:
步骤:3 后端服务器安装好Nginx后,启动服务,如下图:
提示:我们还可以使用以下命令管理 nginx Web 服务器:
option: start reload restart status stop
步骤:4 在每个 Nginx Web 服务器的 Web 文件夹中创建自定义索引页面。这将帮助我们区分哪个后端服务器正在为传入请求提供服务。
在每个 Web 服务器上,执行以下任务:
使用以下命令备份原始索引文件:
将自定义文本添加到index.html 文件。我们正在添加每个 Web 服务器的 IP 地址。
对于网络服务器 1:
对于网络服务器 2:
如果您觉得更舒服,也可以使用 vi 编辑器。如下所示:
打开文件后,输入文本并保存文件。
打开“/etc/nginx/sites-available/”目录中的默认虚拟主机文件。
现在在服务器块内,将根指令从“/var/www/html”更改为“/usr/share/nginx/html”。
要检查 Nginx 配置,请运行以下命令:
步骤 5:现在使用以下命令重新启动服务:
您可以使用以下命令检查 nginx 的状态:
步骤:6 要在 Debian 10 (Buster) 上安装 HAProxy,请在负载平衡器上运行以下命令。
提示:安装 HAProxy 后,您可以通过 init 脚本管理 HAProxy。为此,将“/etc/default/haproxy”中的“enabled”参数设置为1,如下所示:
ENABLED=1
现在以下选项可以与 init 脚本一起使用:
option: start reload restart status stop
步骤:7 现在通过编辑 haproxy 默认配置文件(即“/etc/haproxy/haproxy.cfg”)来配置 HAProxy 负载均衡器。要编辑此文件,请运行以下命令
提示:请备份原文件,以免万一出现问题,我们都安全。要执行备份,请使用以下命令:
现在转到文件末尾并编辑以下信息:
bind 10.0.12.10:80
mode http
default_backend webserver
backend webserver
mode http
balance roundrobin
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
option httpchk HEAD / HTTP/1.1rnHost:localhost
server web1 10.0.12.15:80
server web2 10.0.12.16:80
注意:不要忘记将上述文件中的 IP 地址更改为您已添加到 Web 服务器的 IP 地址。
步骤:8 使用以下命令验证上述文件的配置语法:
如果一切顺利,它将显示如下输出:“配置文件有效。 ” 如果输出中出现任何错误,请重新检查您的配置文件并再次验证。
步骤:9 现在重新启动 HAProxy 服务以应用更改
测试配置
现在是时候看看我们的设置是否正常工作了。在Web浏览器中输入负载均衡器系统IP(在我们的示例中为10.0.12.10)并连续刷新页面2-4次,以查看HAProxy负载均衡器是否正常工作。当您继续多次刷新页面时,您应该会看到不同的 IP 地址或在 index.html 文件中输入的任何文本。
另一种检查方法是使一台 Web 服务器脱机,然后检查另一台 Web 服务器是否正在处理请求。
目前为止就这样了!尝试使用 HAProxy 进行试验以了解有关其工作原理的更多信息。例如,您可以尝试:
除了 nginx 之外,还集成了不同的 Web 服务器。
将负载平衡算法更改为循环算法以外的算法。
配置 HAProxy 健康检查以确定后端服务器是否正常工作。
应用粘性会话将用户连接到同一后端服务器。
使用 HAProxy 统计信息来了解服务器上的流量。
HAProxy 拥有适用于 HAProxy 社区版和 HAProxy 企业版的大量文档。浏览此文档,以获得有关提高服务器环境的性能和可靠性的更多见解。
本指南已在 Debian 10(Buster) 上成功执行。尝试在其他基于 Debian 的发行版(如 Ubuntu、Linux Mint 等)上安装 HAProxy。请不要忘记与其他人分享本指南。