Как запустить несколько экземпляров службы балансировки нагрузки Pound
Я следовал инструкции по этой ссылке, чтобы настроить балансировщик нагрузки на моем сервере fedora. Все отлично работает Pound работает на 80-м порту. Теперь я хочу настроить Pound на другом порту и сбалансировать 2 других сервера.
Я нашел эту другую ссылку, которая подробно описывает, как это сделать. Но этот учебный путь не совпадает с путями Fedora 22.
Дело в том, что я хочу либо (i) настроить Pound на несколько портов, который балансирует разные IP на каждом порту, либо (ii) запустить 2 разных экземпляра Pound с отдельными файлами конфигурации для каждого порта
2 ответа
Наконец-то разобрался сам.
Начальная настройка
- Установите Pound с помощью команды "sudo yum install Pound".
- Запустите фунт и запустите его один раз "sudo service pound start".
- Проверьте, нормально ли работает фунт с 1 экземпляром.
- Теперь остановите фунт, прежде чем переходить к созданию нескольких экземпляров "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
Редактировать конфиг для 2-го экземпляра
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
Примечание: я удалил конфигурацию https в моих файлах cfg, так как они мне не нужны
Просто добавьте несколько
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