HTTP-правила для перенаправления трафика

HTTP-правила работают только в L7-балансировщике, т.к. ему нужен доступ к заголовкам и пути в URL.

HTTP-правила нужны, чтобы на основе атрибутов HTTP-запроса направлять трафик на нужный пул балансировки или отклонять запросы.

Порядок обработки HTTP-правил

При получении запроса балансировщик проверяет его соответствие условиям каждого правила. Выполняются все действия правил, условия которых удовлетворяют запросу.

Порядок правил на вкладке Внешние интерфейсы не влияет на приоритет обработки — все подходящие правила выполняются одновременно.

Примечание

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

Добавление HTTP-правила

Чтобы добавить HTTP-правило для перенаправления трафика:

  1. Выберите проект, в котором заказан Load Balancer.
  2. В главном меню портала перейдите в раздел Ресурсы → Load Balancer.
  3. Нажмите на строку с нужным балансировщиком и перейдите на вкладку Внешние интерфейсы.
  4. В строке с нужным внешним интерфейсом нажмите на кнопку , чтобы открыть список HTTP-правил.
  5. Нажмите на кнопку + Добавить. Откроется окно:


  6. Настройте Условия применения правила:

    1. Выберите тип проверки:
      • PATH — правило сработает на определённый путь в URL;
      • HOSTNAME — правило сработает на определённое доменное имя.
    2. Выберите оператор:
      • EQUAL TO — точное совпадение с указанным значением;
      • STARTS WITH — запрос начинается с указанного значения;
      • ENDS WITH — запрос заканчивается указанным значением;
      • CONTAINS — запрос содержит указанное значение в любом месте;
      • REGEX — запрос соответствует шаблону регулярного выражения.
    3. Введите значение. Значение должно начинаться с /. Например, /api или /shop.example.com.
  7. Выберите Действие при выполнении условия:
    • Направить на пул балансировки — отправить запрос на выбранный Пул балансировки *. Доступны только те пулы балансировки, у которых протокол такой же, как в текущем Внешнем интерфейсе;
    • Редирект на URL — отправить запрос на указанный Url *;
    • Редирект на префикс URL — заменить префикс пути на префикс, указанный в поле Url *, и отправить запрос на получившийся адрес;

      Задача: перенаправить запрос к URL с префиксом /catalog/ на URL с префиксом /collection/.

      Настройки правила:

      Примечание

      {path} — плейсхолдер, который означает «всё, что было после старого префикса».

      Результат:

      Входящий запрос:

      https://fashionstore.ru/catalog/women/dresses

      Запрос после обработки в соответствии с правилом:

      https://fashionstore.ru/collection/women/dresses


    • Отклонить трафик — проигнорировать запрос.
  8. Укажите Имя * правила. Может содержать заглавные и строчные буквы латинского алфавита, цифры, точки, запятые, двоеточия, дефисы, символы нижнего подчёркивания и слэши.
  9. Нажмите на кнопку Добавить.

Задача: направить весь трафик к статическим файлам (изображениям, CSS- и JS-файлам) на отдельный пул балансировки, оптимизированный для быстрой отдачи таких файлов.

Настройки правила:

Как это работает:

  1. Пользователь запрашивает в браузере изображение, например, https://example.com/static/images/logo.png.

  2. Балансировщик нагрузки анализирует путь в запросе: /static/images/logo.png.

  3. Балансировщик нагрузки проверяет все HTTP-правила.

  4. Балансировщик нагрузки находит правило static-content, т.к. путь в запросе начинается со /static/.

  5. Балансировщик нагрузки выполняет действие правила — направляет запрос на пул backend-static-files.
  6. Один из серверов в пуле backend-static-files обрабатывает запрос и возвращает изображение logo.png пользователю.

Результат: весь статический контент из папки /static/ обрабатывается серверами пула, что повышает производительность и позволяет применять специфичные настройки кеширования только к этому пулу.

Добавленное правило отобразится в списке HTTP-правил внешнего интерфейса:

HTTP-правило можно изменить и удалить.

Изменение HTTP-правила

Чтобы изменить HTTP-правило:

  1. Выберите проект, в котором заказан Load Balancer.
  2. В главном меню портала перейдите в раздел Ресурсы → Load Balancer.
  3. Нажмите на строку с нужным балансировщиком и перейдите на вкладку Внешние интерфейсы.
  4. В строке с нужным внешним интерфейсом нажмите на кнопку , чтобы открыть список HTTP-правил.
  5. В строке с нужным HTTP-правилом нажмите на кнопку и выберите пункт Изменить.
  6. Измените настройки правила. Имя * изменить нельзя.
  7. Нажмите на кнопку Изменить.

Удаление HTTP-правила

Чтобы удалить HTTP-правило:

  1. Выберите проект, в котором заказан Load Balancer.
  2. В главном меню портала перейдите в раздел Ресурсы → Load Balancer.
  3. Нажмите на строку с нужным балансировщиком и перейдите на вкладку Внешние интерфейсы.
  4. В строке с нужным внешним интерфейсом нажмите на кнопку , чтобы открыть список HTTP-правил.
  5. В строке с нужным HTTP-правилом нажмите на кнопку и выберите пункт Удалить.
  6. Нажмите на кнопку Удалить.

Мы ответили на ваш вопрос?