Балансировка нагрузки в Edge по URI

Edge Load Balancer, по сути, является HAProxy и поддерживает различные способы балансировки трафика между серверами. В том числе, балансировку HTTP-запросов по URI - веб-адресу страницы, которую мы и рассмотрим в этой статье.

Такой способ балансировки используется, когда нужно отделить "тяжёлые" запросы от остального трафика и перенаправить его на отдельный пул серверов.

Тестовая инфраструктура

Для демонстрации этого способа балансировки были развёрнуты три виртуальные машины в отдельном vApp: web1, web2, web3.

Рис. 1 Состав vApp

web2 в нашем случае займётся обработкой тяжелого, а web1 и web3 - всего остального трафика.

Для отладки и проверки работы веб-серверов были добавлены временные fw и dnat правила.

 

Firewall - разрешён трафик на внешний IP по портам с 80 по 83.

Рис. 2 Правила Firewall

 

NAT - каждый порт перенаправляется на свой сервер

Рис. 3 DNAT правила

 

В качестве веб-серверов использовался nginx, помимо домашней страницы были добавлены ещё две страницы light.html и heavy.html.

Конфигурации виртуальных машин и веб-серверов идентичны.

Отличаются имена хостов, внутренние IP адреса и сами веб-страницы: заголовок для наглядности отображает имя хоста веб-сервера.

Рис. 4 Каждый веб-сервер отображает свою веб-страницу

Настройка Load Balancer

Global Configuration

Включаем балансировку

Рис. 5 Включение балансировки в глобальных настройках

Application Profiles

Добавляем профиль приложения, который будет использоваться виртуальным сервером.

Рис. 6 Добавляем профиль приложения

Рис. 7 Список профилей балансировки приложений

Service Monitoring

Добавляем мониторинг веб-серверов. Это не обязательно, но позволит следить за работоспособностью и использовать только "живые" сервера пула.

Монитор или None выбирается на следующем шаге.

Рис. 8 Задаём настройки мониторинга пула

Рис. 9 Наш новый монитор находится в списке

Pools

Добавляем два пула серверов: для "тяжёлого" и для всего остального трафика

Рис. 10 Добавляем пул серверов

Рис. 11 Список пулов серверов

Application Rules

Добавляем правило, которое как раз и позволит балансировщику распределять трафик по пулам в зависимости от URI:

acl site_heavy path_beg -i /heavy
use_backend pool-web2 if site_heavy

Страницы с адресами /heavy будут переданы на обработку серверам pool-web2 пула.

Правил может быть больше, чем использует виртуальный сервер.

Рис. 12 Добавляем правило балансировки

Рис. 13 Список правил балансировки приложений

Virtual Servers

Добавляем Virtual Server. На вкладке General включаем его, выбираем профиль приложения, внешний IP адрес, протокол и пул по умолчанию.

Рис. 14 Общие настройки виртуального веб-сервера

На вкладке Advanced выбираем ранее определённые правила приложений.

Рис. 15 Виртуальный сервер будет применять правило балансировки

В результате получилась такая настройка:

Рис. 16 Результат настройки виртуального сервера

Проверяем

Домашняя страница

Рис. 17 Проверяем домашнюю страницу

Переход по light-ссылке

Рис. 18 Проверяем light-ссылку

Переход по heavy-ссылке

Рис. 19 Проверяем heavy-ссылку

Балансировка по URI работает, настройка завершена.

Примеры различных правил можно посмотреть в официальной документации.

 

 

 

 

  • Edge, Load Balancer, Balance by URI
  • 70 Els usuaris han Trobat Això Útil
Ha estat útil la resposta?

Articles Relacionats

Hairpin NAT на Edge Gateway

Hairpin NAT можно использовать для доступа к узлу за NAT, находясь за этим же NAT. В данной...

Диагностика сетевых соединений на виртуальном роутере EDGE (Часть 1)

Иногда возникают проблемы при настройке виртуального маршрутизатора, когда не работает проброс...

Диагностика сетевых соединений на виртуальном роутере EDGE (Часть 2)

В данной статье мы рассмотрим возможность проводить захват сетевых пакетов на EDGE с дальнейшим...

Балансировка нагрузки с помощью advanced edge

Балансировщик нагрузки, встроенный в advanced edge, принимает UDP, TCP, HTTP, HTTPS запросы и...

Сетевая настройка VMware инфраструктуры (NAT, DHCP, Firewall, Static Routing, VPN)

Сетевая настройка VMware инфраструктуры (NAT, DHCP, Firewall, Static Routing, VPN). После того,...