乐趣区

关于ubuntu:如何在-Ubuntu-2204-上配置-HAProxy

什么是 HAProxy ?

HaProxy (High Availability Proxy) 是一个开源收费的 HTTP 负载均衡器和反向代理解决方案,宽泛用于为 web 应用程序,用于提供高可用性,并保障最大可能的在线工夫。.

它是一个高性能的应用程序,通过跨多个节点调配流量来为您的 web 利用注入性能改良。通过这种形式,它能够确保 web 服务器不会因为传入的 HTTP 申请而超载,因为工作负载被偏心地散布在几个节点上。

尽管是收费的,但企业版提供了额定的性能,如 WAF (Web Application Firewall)、应用程序减速、高级 DDoS 爱护、高级健康检查等等。

试验筹备

要理论演示 HAProxy,您至多须要三个 Linux 零碎。其中一个将充当 HAProxy 负载均衡器,而其余的将充当 web 服务器。

(第 1 步) 装置 HAProxy 负载均衡器

第一步是在 Ubuntu 上装置 HAProxy,Ubuntu 软件库默认提供 HAProxy,但它不是最新的。

要查看默认软件库中的可用 Haproxy 软件包版本,请运行

$ sudo apt update
$ sudo apt show haproxy

然而最新的长期反对版本是 HAProxy 2.6,所以要装置 HAProxy 2.6,首先启用 PPA 库,运行以下命令

$ sudo add-apt-repository ppa:vbernat/haproxy-2.6 -y

当初通过执行以下命令装置 haproxy 2.6

$ sudo apt update
$ sudo apt install -y haproxy=2.6.\*

装置实现后,确认 HAProxy 的版本,如图所示。

$ haproxy -v

装置后,HAProxy 服务默认启动,监听 TCP 端口 80。如果须要验证 HAProxy 是否正在运行,请执行命令

$ sudo systemctl status haproxy

倡议将服务随零碎主动启动,请执行命令

$ sudo systemctl enable haproxy

(第 2 步) 配置 HAProxy

下一步是配置 Haproxy,用以在两个 Web 服务器之间平均调配流量。Haproxy 的配置文件为 /etc/haproxy/haproxy.cfg

在对文件进行更改之前,首先做一个备份。

$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

而后应用文本编辑器关上文件。这里,咱们用的是 Nano。

$ sudo nano /etc/haproxy/haproxy.cfg

Haproxy 配置文件由以下几个局部组成

  • global: 它蕴含解决性能调优和安全性的零碎范畴设置。
  • defaults: 此局部蕴含无需额定定制即可失常工作的设置。这些设置包含超时和错误报告配置。
  • frontend and backend: 此局部定义前端和后端设置。对于前端,咱们将 HAProxy 服务器定义为前端,它将向后端服务器 (web 服务器) 散发申请。咱们还将 HAProxy 设置为应用轮询负载平衡规范来调配流量。
  • listen: 这是一个可选设置,使您可能启用 HAProxy 统计信息的监控。

当初定义前端和后端设置

frontend linuxtechi
   bind 10.128.0.25:80
   stats uri /haproxy?stats
   default_backend web-servers

backend web-servers
    balance roundrobin
    server web1 10.128.0.27:80
    server web2 10.128.0.26:80

在这里,咱们曾经将 HAProxy 服务器和 web 服务器节点配置为监听端口 80。请确保用您的设置替换 HAProxy 和 web 服务器的 IP 地址。

为了可能在浏览器中查看 HAProxy 统计信息,增加以下侦听局部。

listen stats
   bind *:8080
   stats enable
   stats uri /
   stats refresh 5s
   stats realm Haproxy\ Statistics
   stats auth linuxtechi:[email protected]

stats auth 指令为登录用户指定用户名和明码,以便在浏览器上查看统计信息。

保留更改并退出配置文件,从新加载设置须要重启 haproxy 服务。

$ sudo systemctl restart haproxy

接下来编辑 /etc /hosts 文件

定义 haproxy 主服务器和 web 服务器的主机名和 IP 地址

10.128.0.25 haproxy
10.128.0.27 web1
10.128.0.27 web2

保留批改并退出

(第 3 步) 配置 Web Servers

在这一步中,咱们将配置其余的 Linux 零碎,它们是 web 服务器。

请登录到各 web 服务器,装置 Apache web 服务器包。

$ sudo apt update
$ sudo apt install -y apache2

接下来,验证 Apache 是否在每个服务器上运行。

$ sudo systemctl status apache2

而后设置 apache2 服务随系统启动

$ sudo systemctl enable apache2

接下来,批改每个 web 服务器的 index.html 文件。

对 Web Server 1 做如下操作:

切换到 root 用户

$ sudo su

而后执行如下命令

# echo "<H1>Hello! This is webserver1: 10.128.0.27 </H1>" > /var/www/html/index.html

对 Web Server 2 做如下操作:

切换到 root 用户

$ sudo su

而后执行如下命令

# echo "<H1>Hello! This is webserver2: 10.128.0.26 </H1>" > /var/www/html/index.html

接下来,配置 /etc /hosts 文件。

$ sudo nano /etc/hosts

向每个节点增加 HAProxy 条目

10.128.0.25 haproxy

保留更改并退出配置文件

确保可能从每个 web 服务器节点 ping 通 HAProxy 服务器。

留神: 如果 web 服务器上启用了 80 端口,请确保操作系统防火墙容许 80 端口。

(第 4 步) 测试 HAProxy 负载平衡

到目前为止,咱们曾经胜利地配置了 HAProxy 和两个后端 web 服务器。要测试您的配置是否按预期工作,请拜访 HAProxy 服务器的 IP 地址。

http://10.128.0.25

当您第一次浏览时,您应该看到第一个 web 服务器的网页

在刷新后,您应该看到第二个 web 服务器的网页

这表明 HAProxy 服务器通过 Round robin 算法将传入的 web 流量散布在两个 web 服务器上,从而杰出地实现了负载平衡工作。

此外,您能够应用 curl 命令应用上面的 do-while 循环测试

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

要查看监控统计信息,请拜访以下地址

http://10.128.0.25:8080/stats

您将须要进行身份验证,因而请依照步骤 2 中指定的形式提供详细信息。

您将看到上面的页面,其中蕴含对于 HAProxy 服务器性能的统计数据。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
退出移动版