网站搜索

在 RHEL/CentOS 上使用“POUND”设置 Web 服务器负载平衡


POUND是ITSECURITY公司开发的负载均衡程序。它是一个轻量级的开源反向代理工具,可以用作 Web 服务器负载平衡器,在多个服务器之间分配负载。 POUND 为最终用户提供了几个非常方便且能正确完成工作的优势。

  1. 支持虚拟主机。
  2. 可配置。
  3. 当后端服务器发生故障或从故障中恢复时,它会自动检测到并据此做出负载平衡决策。
  4. 它拒绝不正确的请求。
  5. 没有指定的浏览器或网络服务器。

让我们看看如何完成这个黑客攻击。

首先,您需要一个场景来更好地理解如何完成此任务。因此,我将使用一种场景,其中有两个网络服务器和一个网关服务器,需要平衡来自网关服务器的请求到网络服务器。


Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

步骤1:在网关服务器上安装Pound负载均衡器

1. 安装Pound的最简单方法是使用预编译的 RPM 软件包,您可以在以下位置找到基于 RedHat 的发行版的 RPM:

  1. http://www.invoca.ch/pub/packages/pound/

或者,可以从 EPEL 存储库轻松安装 Pound,如下所示。


yum install epel-release
yum install Pound

Pound安装后,您可以通过发出此命令来验证它是否已安装。


rpm –qa |grep Pound

2. 其次,您需要两个网络服务器来平衡负载并确保您有明确的标识符,以便测试磅配置是否正常工作。

这里我有两台服务器,其IP地址为172.16.1.204192.168.1.161

为了便于使用,我创建了 python SimpleHTTPServer 在两台服务器上创建即时 Web 服务器。了解有关 python SimpleHTTPServer 的内容

在我的场景中,我的 webserver01 通过端口 8888172.16.1.204 上运行,webserver02172.16.1.204 上运行>192.168.1.161 通过端口 5555

步骤 2:配置 Pound 负载均衡器

3. 现在是时候完成配置了。成功安装 pound 后,它会在 /etc 中创建 pound 的配置文件,即 pound.cfg

我们必须编辑服务器和后端详细信息,以平衡网络服务器之间的负载。转到 /etc 并打开 pound.cfg 文件进行编辑。


vi /etc/pound.cfg

按照下面的建议进行更改。


ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

这就是我的 pound.cfg 文件的样子。

在“ListenHTTP”和“ListenHTTPS”标签下,您必须输入已安装POUND的服务器的IP地址

默认情况下,服务器通过端口 80 处理 HTTP 请求,通过端口 443 处理 HTTPS 请求。在“Service”标签下,您可以添加任意数量的名为“BackEnd”的子标签。后端标签包含运行网络服务器的 IP 地址和端口号。

现在,正确编辑后保存文件,并通过发出以下命令之一重新启动 POUND 服务。


/etc/init.d/pound restart 
OR
service pound restart
OR
systemctl restart pound.service

4.现在是时候检查一下了。打开两个网络浏览器来检查我们的配置是否正常工作。在地址栏中输入您的 POUND 网关的 IP 地址,然后查看显示的内容。

第一个请求应加载第一个 webserver01,来自其他 Web 浏览器的第二个请求应加载第二个 webserver02

此外,考虑这样一个场景,如果您有两个网络服务器来进行负载平衡,其中一个服务器的性能很好,而其他服务器的性能不太好。

因此,在它们之间进行负载平衡时,您必须考虑应该对哪台服务器给予更多的权重。显然对于具有良好性能规格的服务器来说。

要像这样平衡负载,您只需在 pound.cfg 文件中添加一个参数即可。我们来看看吧。

认为服务器 192.168.1.161:5555 是更好的服务器。然后您需要将更多请求流发送到该服务器。在为 192.168.1.161 服务器配置的“BackEnd”标签下,在结束标签前添加参数“Priority”。

看下面的例子。

我们可以使用的“优先级”参数的范围在1-9之间。如果我们不定义它,将分配默认值5

然后负载将被平均平衡。如果我们定义优先级编号,POUND 将更频繁地加载优先级编号较高的服务器。因此,在这种情况下,192.168.1.161:5555 的加载频率将高于服务器 172.16.1.204:8888

第 3 步:规划紧急故障

紧急标签:此标签用于在所有后端服务器都死掉的情况下加载服务器。您可以将其添加到 pound.cfg 的最后一个结束标记之前,如下所示。


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND 始终跟踪哪些后端服务器处于活动状态,哪些后端服务器处于活动状态。我们可以通过在pound.cfg中添加“Alive”参数来定义POUND在多少秒后检查后端服务器。

您可以使用参数“Alive 30”将其设置为30秒。 Pound 将暂时禁用没有响应的后端服务器。当我们说没有响应时,服务器可能已死机或此时无法建立连接。

POUND 将在您在 pound.cfg 文件中定义的每个时间段后检查禁用的后端服务器,以防服务器可以建立连接,然后 POUND 可以恢复与服务器的工作。

7. POUND 守护进程将由 poundctl 命令处理。这样我们就不需要编辑 pound.cfg 文件,我们可以通过以下方式发出 Listner ServerBackEnd 服务器和会话等。一个命令。


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c 定义套接字的路径。
  2. -L/-l 定义架构的监听器。
  3. -S/-s 定义服务。
  4. -B/-b 定义后端服务器。

有关详细信息,请参阅 poundctl 手册页。

希望您喜欢这个技巧并发现更多与此相关的选项。如有任何建议和想法,请随时在下面发表评论。与 Tecmint 保持联系,获取方便且最新的操作方法。

另请阅读:为 Web 服务器安装 XR Crossroads 负载均衡器