Статьи

Балансировка нагрузки ваших серверов веб-приложений

Я начал свое приключение с необходимости обеспечить большую продолжительность работы определенного веб-сервиса, работающего на сервере Tomcat. Я исследовал множество различных направлений и, в конце концов, оказался в блоге коллег.

Большая часть информации в сети о кластеризации серверов Tomcat говорит о том, что вам нужно использовать модуль apache mod_jk . Это не так и, в некоторых случаях, не то, что вы действительно хотите. Один из таких примеров можно найти в учебнике по JDBC , и это неплохой путь. Я начал это делать, а затем мой коллега направил меня к одной из его записей в блоге, которая в основном предназначена для кластеризации серверов Glassfish, но концепция и процесс настройки Apache одинаковы.

Однако есть пара вещей, которые он пропустил.

1. Вы должны убедиться, что загружаете балансировщик нагрузки прокси. Например, в вашем файле httpd.conf есть раздел, в который загружаются модули apache. Убедитесь, что у вас есть LoadModule для балансировщика нагрузки:

LoadModule proxy_balancer_module /modules/mod_proxy_balancer.so


2. Когда вы настраиваете свой кластер, как в статье Манфреда, подумайте, куда вы помещаете эти правила. Они должны быть включены в стартап. Итак, либо в httpd.conf, либо в файле правил перезаписи.

3. Конфигурации и в статье Манфреда содержат пару ошибок (извините, Манфред). Параметр «Порядок» не допускает пробелов после запятой. Итак, конфигурация становится:

Order deny,allow
Allow from all

Order allow,deny
Allow from all


4. Обратите внимание на то, что вы положили в свой тег. Это контекст, который вы будете использовать для доступа к консоли управления балансировщиком нагрузки. Подробнее об этом позже ….

5. Балансер определен в теге. На это ссылается параметр ProxyPass. Также в параметре ProxyPass находится контекст приложения, который должен быть сбалансирован по нагрузке. В примере Манфреда / clusterjsp является контекстом приложения, которое должно быть сбалансировано по нагрузке. Существует много информации о том, как сделать различные конфигурации для балансировщика нагрузки. Достойное место, чтобы начать для получения дополнительной информации здесь .

6. Вы определяете узлы в вашем кластере в разделе. Узлы определяются записями BalancerMember. Эти директивы принимают те же параметры, что и директива ProxyPass. Таким образом, вы можете назначить маршрут и путь перенаправления для ваших узлов. Например:

BalancerMember http://localhost:8080 route=myroute1 redirect=myroute2
BalancerMember http://localhost:8081 route=myroute2 redirect=myroute3
BalancerMember http://localhost:8082 route=myroute3 redirect=myroute1

Таким образом, если какой-либо из ваших узлов выходит из строя, вы можете указать, какой маршрут выбрать. Или вы можете оставить их и позволить Apache решить. Это, тем не менее, удобно.

7. После того, как вы все настроите и будете работать (перезапустили сервер apache), вам нужно взглянуть на консоль балансировки нагрузки. Если вы настроили это на своем локальном компьютере, и мы все еще работаем на примере Манфреда, URL этой консоли будет следующим:

http://localhost/balancer-manager


Это загрузит страницу, где вы можете включить / отключить узлы в кластере и установить узел аварийного переключения для определенного узла. Нажмите на ссылку для одного из узлов. Откроется новый раздел страницы, позволяющий вам ввести информацию о коэффициенте загрузки (какую нагрузку должен получить этот узел), маршруте (может быть все, что вы хотите) и перенаправлении маршрута (на какой узел идти, если этот узел становится недоступным). Маршрутный редирект — это имя узла. Таким образом, если вы называете свой первый узел «node1», то другие узлы могут ссылаться на этот узел как «node1» в поле маршрута перенаправления.

Также на этой странице есть статистика об ошибках, использовании, состоянии определенного узла. Некоторая полезная информация о здоровье вашего кластера.

Наконец, если вы хотите отключить определенный узел (для некоторого обслуживания), вы можете сделать это из консоли балансировщика нагрузки.

Есть еще много вещей, которые вы можете сделать с балансировщиком нагрузки. Если вас это мало интересует, обязательно прочитайте документацию по Apache .

Наслаждайтесь!