← Cloudflare Load Balancing / load-balancing / additional-options / load-balancing-rules
Выражения
Правила балансировки нагрузки используют выражения двух видов:
-
Простые выражения сравнивают значение из HTTP-запроса со значением, заданным в выражении. Простое выражение можно определить по наличию оператор сравнения (равно или меньше, например).
-
Составные выражения объединяют два или более простых выражений в одно выражение. Составное выражение содержит логический оператор (и, или, например). С помощью составных выражений вы можете точно настраивать правила под конкретные сценарии использования с высокой точностью.
Простые выражения
Простое выражение состоит из трех элементов:
- A поле который представляет свойство HTTP-запроса.
- Репрезентативная значение для этого поля, которое Cloudflare сравнивает с фактическим значением запроса.
- A оператор сравнения, который определяет, как значение, заданное в выражении, должно соотноситься с фактическим значением из запроса, чтобы оператор вернул
true.
Когда оператор сравнения возвращает true, запрос соответствует выражению.
Этот пример выражения возвращает true, если путь URI запроса содержит /content:
(http.request.uri.path contains "/content")Как правило, простые выражения строятся по следующему шаблону:
<field> <operator> <value>Подробнее см. в Поддерживаемые поля и операторы.
Составные выражения
Составное выражение использует логический оператор (и, или, например) для объединения двух или более выражений. Составные выражения позволяют строить сложные конструкции в рамках одного выражения.
Приведённый ниже пример выражения возвращает true, если путь URI HTTP-запроса одновременно содержит /content и строка запроса содержит webserver:
(http.request.uri.path contains "/content")
and (http.request.uri.query contains "webserver")Как правило, составные выражения строятся по следующему шаблону:
<expression> <logical operator> <expression>Составное выражение может быть операндом логического оператора. Это позволяет с помощью нескольких операторов строить составное выражение из множества отдельных выражений.
Подробнее см. в Поддерживаемые поля и операторы.
Работа с выражениями
Визуальный интерфейс Expression Builder позволяет создавать выражения, не задумываясь об именах полей и синтаксисе.
Для сравнения, Expression Editor работает только с текстом, но поддерживает дополнительные функции, недоступные в конструкторе.
Expression Builder
Составные выражения легче воспринимаются в визуальном интерфейсе Expression Builder, а Expression Preview служит отличным подспорьем при освоении более сложных выражений.
На этом снимке экрана Expression Builder показано составное выражение из примера, описанного выше. Составные выражения проще воспринимать, когда они отображаются в визуальном интерфейсе Expression Builder.
Expression Preview отображает выражение в текстовом виде:
(http.request.uri.path contains "/content")
and (http.request.uri.query contains "webserver")Пошаговое руководство приведено в Создание правил Load Balancing.
Expression Editor
Expression Editor представляет собой текстовый интерфейс для создания выражений Load Balancing. Хотя он уступает Expression Builder в визуальной простоте, Expression Editor поддерживает расширенные функции, например группировку с помощью круглых скобок.
Чтобы открыть Expression Editor в Трафик приложении нажмите Edit expression в Создание пользовательского правила диалоговое окно.
Чтобы вернуться к конструктору, нажмите Используйте конструктор выражений.
Списки правил
Load Balancing Custom Rules не поддерживает операторы списков IP-адресов.