乐趣区

关于ubuntu:如何在-Ubuntu-2004-LTS-安装-HAProxy

HAProxy 是一个收费和开源的高可用性和负载平衡解决方案,它也能够用于代理基于 TCP 和 HTTP 的应用程序。HAProxy 能够在 Linux、Solaris 和 FreeBSD 上装置和配置。HAProxy 是流量大的网站最举荐的解决方案,它通过负载平衡以及其高可用能力,进步服务器的性能和可靠性。

HAProxy 被许多最风行的网站应用,包含 GitHub, Bitbucket, Stack Overflow, Reddit, Tumblr, Twitter,它也被用在亚马逊网络服务的 OpsWorks 产品中。

必备条件

  • Minimal Installed Ubuntu 20.04 System
  • Local User with sudo rights
  • Internet connectivity

(第 1 步) 装置更新

登录 Ubuntu 20.04 零碎,应用上面的 apt 命令装置所有可用的更新

$ sudo apt update
$ sudo apt upgrade -y

装置完所有更新后,重新启动零碎。

$ sudo reboot

(第 2 步) 装置 HAProxy

HAProxy 包在默认包存储库中可用,但它不是最新和稳固的版本。因而,要装置最新版本,请启用 HAProxy PPA,运行以下命令

$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:vbernat/haproxy-2.6 -y

当初,运行以下 apt 命令装置 haproxy

$ sudo apt update$ sudo apt install haproxy -y

验证 haproxy 版本,执行以下命令

$ haproxy -v'

当咱们装置 Haproxy 包时,Haproxy 服务主动启动。验证 haproxy 服务状态,执行如下命令

$ sudo systemctl status haproxy

(第 3 步) 配置 HAProxy

当初咱们曾经筹备好了 haproxy。在本指南中,咱们将配置 HAProxy 来均衡来自邮件服务器和 web 服务器的申请。

应用 HAProxy 对邮件服务器进行负载平衡

对于本例,咱们将应用 IP 地址别离为 192.168.1.10 和 192.168.1.20 的两个 SMTP 服务器。

haproxy 服务器的 IP 地址为 192.168.1.100。

咱们将批改 Haproxy 配置文件 /etc/haproxy/haproxy.cfg,对两个邮件服务器进行负载平衡配置

在进行更改之前,请应用 cp 命令备份其配置文件

$ sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-org

当初进行更改,在文件开端增加以下 frontendbackend 局部

$ sudo vi /etc/haproxy/haproxy.cfg
-------------------------------
frontend front_smtp
        bind *:25
        mode tcp
        default_backend back_smtp

backend back_smtp
        mode tcp
        balance roundrobin
        server smtp1 192.168.1.10:25 check
        server smtp2 192.168.1.20:25 check

大多数选项都是默认设置的,须要更改的次要内容是 frontendbackend 局部

frontend front_smtp

bind *:25

          mode tcp

          default_backend back_smtp

这里咱们为 frontend 定义了一个名称,即 front_smtp,并要求从端口 25 接管所有的申请,带绑定参数,最初咱们提到了 backend 区块,名为 back_smtp,所有的申请将被散发到这里。

backend back_smtp

mode tcp

        balance roundrobin

        server smtp1 192.168.1.10:25 check

        server smtp2 192.168.1.20:25 check

在本区块中,咱们为 backend 定义了一个名称 (back smtp) 和传输模式,并应用轮询 (roundrobin) 算法。其余可用的负载平衡办法有: 加权轮询 (weighted round robin)、动静轮询算法 (dynamic round robin)、最小连贯算法 (least connection)。最初,咱们提到了两个 SMTP 服务器的服务器地址。

更改实现后,保留文件并重新启动 haproxy 服务

$ sudo systemctl restart haproxy

咱们的 Haproxy 服务器当初能够作为邮件服务器的负载均衡器工作了。当初,咱们不须要应用 SMTP 服务器地址,而是须要应用 HAPROXY 的服务器地址,例如 192.168.1.100:25,以便 HAPROXY 负载平衡工作。

要查看咱们的 SMTP 服务器的负载平衡是否失常工作,咱们能够应用 telnet

telnet 命令的输入应该如下所示

$ telnet 192.168.1.100 25
Trying 192.168.1.100..
Connected to 192.168.1.100.
Escape character is‘^]’.
220 smtp1.linuxtechi.com ESMTP Postfix

当初再次运行 telnet 命令

$ telnet 192.168.1.100 25
Trying 192.168.1.100..
Connected to 192.168.1.100.
Escape character is‘^]’.
220 smtp2.linuxtechi.com ESMTP Postfix

请留神两个输入中的邮件服务器服务器的变动,这表明负载平衡工作良好。当初让咱们探讨一个 web 服务器负载平衡的 harpoxy 示例。

用 HAProxy 实现 Web 服务器的负载平衡

Same file will be edited‘/etc/haproxy/haproxy.cfg’. We will be using two web servers (192.168.1.10 & 192.168.1.20) on backend. IP address for the haproxy server is 192.168.1.100.

同样编辑文件 /etc/haproxy/haproxy.cfg,咱们将在后端应用两个 Web 服务器(192.168.1.10,192.168.1.20)。Haproxy 服务器的 IP 地址为 192.168.1.100。

关上 haproxy 主配置文件,并在文件开端追加以下更改

$ sudo vi /etc/haproxy/haproxy.cfg

------------
frontend www-http
        bind *:80
        mode http
        default_backend apache

backend apache
        mode http
        balance roundrobin
        server web1 192.168.1.10
        server web2 192.168.1.20

保留文件并重新启动 haproxy 服务

$ sudo systemctl restart haproxy

为了测试负载平衡是否无效,咱们能够在两台服务器上搁置两个不同的网页。

Webserver 1 批改 index.html

[[email protected] ~]$ sudo vi /var/www/html/index.html
This is WEB SERVER 1

Webserver 2 批改 index.html

[[email protected] ~]$ sudo vi /var/www/html/index.html
This is WEB SERVER 2

不要遗记重新启动 web 服务来实现所做的更改。

当初,应用 haproxy IP 地址 192.168.1.100 并应用 web 浏览器拜访它。

每次咱们刷新浏览器时,咱们应该从两个 web 服务器交替拜访 web 页面。

我的开源我的项目

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