Управление правилами обработки запросов

Общий принцип

В рамках сервиса Edge Logic Rules вы можете создавать неограниченное количество наборов правил и привязывать их к сервисным конфигурациям. При обработке запроса Платформа будет проверять запросы на соответствие критериям в правилах обработки в составе набора правил. При составлении правил обработки вы можете использовать заранее созданные списки значений: IP-префиксы, страны, заголовки и т.п.

Наборы правил

Вы можете управлять наборами правил на странице сервиса «Edge Logic Rules» клиентского портала NGENIX Multidesk.

Наборы правил

Набор правил содержит от одного до нескольких правил. В правилах описаны критерии, при выполнении которых будет применено одно или несколько действий.

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

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

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

Набор правил

Категория набора правил

Существуют следующие категории:

  • простой,

  • расширенный,

  • универсальный.

Порядок обработки правил в наборе

Каждый запрос проходит все правила в наборе последовательно, сверху вниз. Обработка запроса прекращается, если в каком-либо правиле выполняется терминирующее действие.

Вы можете изменить порядок правил, переместив их в нужном порядке.

Максимальное количество правил в одном наборе: 10.

Правила

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

Вы можете выключить любое правило в наборе.

Вы можете также копировать и удалять правила.

Критерии

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

Критерий и действие в правиле

Возможные Поля из HTTP-запроса пользователя:

  • ip.addr – IP-адрес,

  • ip.geoip.country – страна,

  • http.request.method – HTTP-метод (GET, HEAD, POST и т.п.),

  • http.request.headers.<header_name> – HTTP-заголовок,

  • http.request.args.<argument_name> – аргумент запроса,

  • http.request.rawuri – URI запроса,

  • http.request.scheme – схема (http или https),

  • http.request.port – порт (TCP),

  • http.request.host – значение заголовка Host,

  • http.request.path – путь к ресурсу без схемы, хоста, порта и аргументов,

  • http.request.referer.scheme – схема из заголовка Referer,

  • http.request.referer.host – хост из заголовка Referer,

  • http.request.origin.scheme – схема из заголовка Origin,

  • http.request.origin.host – хост из заголовка Origin.

Например, чтобы создать критерий для User-Agent необходимо в Поле указать: http.request.headers.user-agent

Значение в "Поле" необходимо указывать в нижнем регистре.

Максимальное количество критериев в одном правиле: 5.

Можно выбрать следующие операторы сравнения, в зависимости от выбранного поля:

  • true –  верно,

  • equals – равно единственному Значению,

  • in – равно хотя бы одному из перечисленных Значений,

  • contains – содержится в любом из перечисленных Значений,

  • begins – начинается с любого из перечисленных Значений,

  • ends – заканчивается на любое из перечисленных Значений,

  • exists – присутствует.

Опционально вы можете выбрать модификатор запроса NOT. В этом случае оператор сравнения инвертируется.

В правиле могут отсутствовать критерии. В этом случае действие будет выполняться для любого запроса.

Вы можете использовать список значений при создании критерия. Например, список стран, IP-префиксов и т.п.

Действия

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

Доступны следующие действия:

  • allow –  пропустить запрос,

  • deny – заблокировать запрос,

  • redirect – перенаправить запрос (3xx Redirect),

  • setHeader – установить(заменить) заголовок запроса,

  • delHeader – удалить заголовок запроса.

Действия allow, deny и redirect являются терминирующими. Это означает, что после выполнения такого действия дальнейшая обработка запроса по следующим правилам прекращается.

Дополнительные параметры для действий

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

Действие

Параметры

allow

отсутствуют

deny

HTTP-статус код от 400 до 599

redirect

HTTP-статус код: 301, 302, 303, 307, 308

delHeader

имя заголовка

setHeader

имя заголовка, содержимое заголовка

Для действий setHeader и delHeader имя заголовка должно быть описано в специальном формате: http.request.headers.<header_name>

Например для заголовка User-Agent:http.request.headers.user-agent

Списки значений

Списки значений необходимы для перечисления большого количества объектов: IP-префиксы, страны, HTTP-методы, строки. Вы можете использовать списки в критериях правил для тех или иных полей запроса.

Списки значений

Например, вы можете создать список доверенных IP-адресов, которые будут иметь доступ к панели администратора. В дальнейшем такой список можно использовать в большом количестве критериев разных правил.

Технические ограничения

Для сервиса Edge Logic Rules действуют следующие технические ограничения:

Сущность

Ограничение

Количество правил в наборе

10

Количество критериев в правиле

5

Количество действий в правиле

5

Размер списка стран

300

Размер списка строк

300

Размер списка префиксов

20000

Количество символов в значениях строк в списке

255