如何在Linux中安装和配置HAproxy负载均衡

HAproxy是一个开源的轻量级软件包,可为基于TCP和HTTP的程序提供高可用性和负载平衡。 它在Web服务器和应用程序服务器之间分配负载。 HAproxy几乎可用于所有Linux发行版。 它是一种广泛使用的负载均衡器,因其效率,可靠性以及低内存和CPU占用空间而广受欢迎。


在本文中,我们将说明如何在Linux系统上安装和配置HAproxy。 我们将在一台服务器上安装HAproxy,在两台服务器上安装Apache Web服务器。 然后,我们的HAproxy服务器将充当负载平衡器,并在Apache Web服务器之间分配负载。


网络详细信息:

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

          hostname            IP  Adress                    服务器角色
      Haproxy     192.168.72.157                   前端服务器
     Web-Server1     192.168.72.158                   后端服务器
     Web-Server2      192.168.72.159                    后端服务器

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


架构拓扑图:

image.png

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

在本节中,我们将设置两个Web服务器(web-server1和web-server2)作为后端服务器。

在web-server1(192.168.72.158)上

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


1.配置主机文件

在web-server1上,编辑/ etc / hosts文件:

$ sudo nano /etc/hosts

然后,如下所示添加HAproxy服务器的主机名条目:

hostname-of-HAproxy IP-address-of-HAproxy

In our scenario, it would be:

HAproxy 192.168.72.157

2.设置Apache Web服务器

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

$ sudo apt install apache2

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

$ sudo systemctl enable apache2
$ sudo systemctl start apache2

在终端中使用以下命令为web-server1创建一个首页文件:

$ echo "<H1>Hello! This is webserver1: 192.168.72.158 </H1>" | sudo tee /var/www/html/index.html

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

$ sudo ufw allow 80/tcp

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

$ ufw reload

现在,尝试通过在Web浏览器中输入http://,然后输入Web服务器的IP地址或主机名来访问该站点。

http:// hostname-or-IP-address

image.png

在Web服务器2上192.168.72.159)

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

1.配置主机文件

在web-server2中,编辑/ etc / hosts文件:

$ sudo nano  /etc/hosts

然后,如下所示添加HAproxy服务器的主机名条目:

HAproxy 192.168.72.157


2.安装Apache Web服务器

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

 

$ sudo apt install apache2

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


$ sudo systemctl enable apache2

$ sudo systemctl start apache2


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

$ echo "<H1>Hello! This is webserver2: 192.168.72.159 </H1>" | sudo tee /var/www/html/index.html


在防火墙中允许Apache:

$ sudo ufw allow 80/tcp


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

$ ufw reload


现在,尝试通过在Web浏览器中输入http://,然后输入IP地址或主机名来访问该站点。


http:// hostname-or-IP-address

image.png

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

在本节中,我们将为我们的Web服务器设置HAproxy负载平衡器。 该HAproxy服务器将充当前端服务器,并接受来自客户端的传入请求。


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

1.配置主机文件

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

$ sudo nano /etc/hosts

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

192.168.72.157 HAproxy

192.168.72.158 web-server1

192.168.72.159 web-server2

image.png

现在保存并关闭/ etc / hosts文件。


安装HAproxy负载均衡

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

$ sudo apt-get update

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

$ sudo apt-get upgrade

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

$ sudo sudo apt install haproxy

image.png

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

$ haproxy -v

它将向您显示系统上已安装的HAproxy版本,该版本可验证HAproxy已成功插入。

image.png

将HAproxy配置为负载均衡器

在以下部分中,我们将HAproxy配置为负载平衡器。 为此,请编辑/etc/haproxy/haproxy.cfg文件:

$ sudo nano  /etc/haproxy/haproxy.cfg

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


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

image.png


配置HAproxy监控

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

listen stats

bind 192.168.72.157:8080                
    mode http 
    option forwardfor 
    option httpclose 
    stats enable 
    stats show-legends 
    stats refresh 5s 
    stats uri /stats                             
    stats realm Haproxy\ Statistics 
    stats auth kbuzdar:kbuzdar            #Login User and Password for the monitoring 
    stats admin if TRUE

上面的配置使用stats指令启用HAproxy的“ stats”页面,并使用stats auth指令定义的用户名和密码通过http基本认证来保护它。

image.png

完成配置后,保存并关闭haproxy.cfg文件。


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

$ haproxy -c -f /etc/haproxy/haproxy.cfg

以下输出显示配置正确。

image.png

现在要应用配置,请重新启动HAproxy服务:

$ sudo systemctl restart haproxy.service

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


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

$ sudo systemctl status haproxy.service

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

image.png


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


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


$ sudo systemctl start haproxy.service

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

$ sudo systemctl stop haproxy.service

如果要暂时禁用HAproxy服务器,则命令为:

$ sudo systemctl disable haproxy.service

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

$ sudo systemctl enable haproxy.service

测试HAProxy

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

$ ping hostname-or-ip-address

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

image.png

使用Web浏览器测试HA代理

现在,在您的HAproxy服务器中,打开任何Web浏览器,然后键入http://,然后键入HAproxy服务器IP地址(在我们的情况下为192.168.72.157)。


http://192.168.72.157

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


这是我们首次访问http://192.168.72.157时收到的响应:

image.png

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

image.png

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

image.png

使用curl测试HA代理

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


$ curl 192.168.72.157


要么


$ curl HAproxy

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


您可以运行以下单行脚本来测试HAproxy服务器,而不必多次运行命令:

$ while true; do curl 192.168.72.157; sleep 1; done

image.png

测试HAproxy监控

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


http://192.168.72.157:8080/stats


要么


http:// HAproxy:8080 / stats

将出现以下验证框。 输入您先前在配置中配置的用户名和密码,然后按OK。

image.png

HAproxy服务器的统计报告。

image.png

标签: 教程

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:windows 10 使用命令释放IP 和重新获取IP
下一篇:怎么删除Windows 10 应用商店下载记录

发表评论

vidnami 在线视频创作工具--做海外推广营销视频必备工具

image.png


我们的折扣优惠是向观众推广Vidnami的绝妙方式。他们将即时访问 25% 的 Vidnami, 再加上我们的视频营销包免费。最棒的是,您将获得所有销售额的50%!

https://www.vidnami.com/c/Mr_xiaoxiao-vn-buy-discount 

期待各位的加入,让原创发挥活力,让阅读更有价值!登录注册
登录
用户名
密码
注册
用户名
密码
确认密码
邮箱
验证码
找回密码
用户名
邮箱
※ 重置链接将发送到邮箱