Документация Httpd на первый взгляд довольно запутанная, она не объединяет понятия, например, виртуальные хосты с балансировщиками.Но я все еще извлекаю много информации из их документов .
. Основной подход заключается в том, чтобы установить балансировщик и его членов, а затем прокси все.
Для этого нам понадобится установить несколько модулей: sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
должно быть достаточно, в противном случае проверьте журналы на наличие отсутствующих модулей или рекомендаций.
Затем заполните пробелы в вашем виртуальном хосте.:
<VirtualHost *:80>
ServerName api.myapp.com
ProxyPreserveHost On
ProxyRequests Off
#Your balanced backends
<Proxy balancer://backend-cluster>
BalancerMember http://localhost:3000
BalancerMember http://localhost:9000
ProxySet lbmethod=byrequests
</Proxy>
#Balancer admin interface for localhost access
<Location /balancer-manager>
SetHandler balancer-manager
Order allow,deny
allow from localhost
</Location>
ProxyPass /balancer-manager !
#Proxying everything to your backends
ProxyPass / balancer://backend-cluster/
</VirtualHost>
Httpd также предоставляет несколько других алгоритмов для балансировки ваших запросов.Как вы можете видеть, приведенный пример балансирует с byrequest (в двух словах, разделяет запросы между участниками).Остальные (я рекомендую вам прочитать документы):
- bytraffic - Распределить нагрузку по количеству трафика на одного участника
- bybusyness - выбираются члены с меньшим количеством заданий
- heartbeat - использует mod_heartbeat для балансировки работы
Эта минимальная конфигурация должна быть достаточной для достиженияминимальные бэкэнд-сервисы HA.