如何 运行 Pound 负载均衡器服务的多个实例

How to run multiple instance of Pound load balancer service

我按照 link 中的说明在我的 Fedora 服务器上设置了 Pound 负载均衡器。一切正常。 Pound 在端口 80 上 运行ning。现在我想在不同的端口上配置 Pound 并平衡 2 个其他不同的后端服务器。

我找到了这个 other link,其中详细说明了如何完成此操作。但是该教程路径与 Fedora 22 路径不匹配。

问题是,我想 (i) 在多个端口上配置 Pound,以平衡每个端口上的不同 IP,或者 (ii) 运行 2 个不同的 Pound 实例,每个端口都有单独的配置文件

终于自己想通了。

初始设置

  1. 使用命令 "sudo yum install Pound".
  2. 安装 Pound
  3. 开始英镑 运行 一次 "sudo service pound start"。
  4. 检查 pound 在 1 个实例中是否正常工作。
  5. 现在停止 pound 服务,然后再继续创建多个实例 "sudo service pound stop"

步骤 1

分别为每个实例创建磅配置文件。默认文件位于 /etc/pound.cfg

sudo cp -p /etc/pound.cfg /etc/pound1.cfg
sudo cp -p /etc/pound.cfg /etc/pound2.cfg

步骤 2

分别为每个实例创建虚拟 pid 文件。默认文件位于 /var/run/pound.pid

sudo cp -p /var/run/pound.pid /var/run/pound1.pid
sudo cp -p /var/run/pound.pid /var/run/pound2.pid

步骤 3

编辑默认配置文件并为每个实例分配不同的 http 端口。

修改"Control" 路径和后端服务器以平衡每个实例的负载

sudo nano /etc/pound1.cfg

pound1.cfg

User "pound"
Group "pound"
Control "/var/lib/pound/pound1.cfg"

ListenHTTP
    Address 0.0.0.0
    Port 8879
End

Service
    BackEnd
        Address 139.16.00.82
        Port    8879
    End

    BackEnd
        Address 139.16.00.88
        Port    8879
    End
End

编辑第二个实例的配置

sudo nano /etc/pound2.cfg

pound2.cfg

User "pound"
Group "pound"
Control "/var/lib/pound/pound2.cfg"

ListenHTTP
    Address 0.0.0.0
    Port 80
End

Service
    BackEnd
        Address 139.16.00.85
        Port    8080
    End

    BackEnd
        Address 139.16.00.86
        Port    8080
    End
End

步骤 4

复制磅服务文件为每个实例创建单独的文件。这将位于 /usr/lib/systemd/system/pound.service

sudo cp -p /usr/lib/systemd/system/pound.service /usr/lib/systemd/system/pound1.service
sudo cp -p /usr/lib/systemd/system/pound.service /usr/lib/systemd/system/pound2.service

编辑服务文件以使用适当的配置和 pid 文件

sudo nano /usr/lib/systemd/system/pound1.service

pound1.service

[Unit]
Description=Pound Reverse Proxy And Load-balancer
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/pound1.pid
ExecStart=/usr/sbin/pound -f /etc/pound1.cfg -p /var/run/pound1.pid

[Install]
WantedBy=multi-user.target

pound2.service

[Unit]
Description=Pound Reverse Proxy And Load-balancer
After=syslog.target network.target

[Service]
Type=forking
PIDFile=/var/run/pound2.pid
ExecStart=/usr/sbin/pound -f /etc/pound2.cfg -p /var/run/pound2.pid

[Install]
WantedBy=multi-user.target

步骤 5

现在重新加载 systemctl 守护程序并启动 运行这两个服务

sudo systemctl daemon-reload
sudo service pound1 start
sudo service pound2 start

如果您遇到任何问题,请使用以下命令检查状态,这有助于我确定一些问题

sudo service pound1 status

注: 我已经删除了我的 cfg 文件中的 https 配置,因为我不需要它们

只需添加多个 ListenHTTP 指令:

ListenHTTP
    Address 0.0.0.0
    Port 8879
    Service
        BackEnd
            Address 139.16.00.82
            Port    8879
        End

        BackEnd
            Address 139.16.00.88
            Port    8879
        End
    End
End

ListenHTTP
    Address 0.0.0.0
    Port 80
    Service
        BackEnd
            Address 139.16.00.85
            Port    8080
        End
        BackEnd
            Address 139.16.00.86
            Port    8080
        End
    End
End