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

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

В рамках сервиса 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 являются терминирующими. Это означает, что после выполнения такого действия дальнейшая обработка запроса по следующим правилам прекращается.
Для действия deny также возможно указать текст сообщения для страницы-заглушки. Текст сообщений по умолчанию: "Доступ к сайту временно ограничен владельцем веб-ресурса".

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

Для некоторых действий есть возможность указать дополнительные параметры.
Действие
Параметры
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
Last modified 27d ago