Переменные для Content Rules¶
Этот документ описывает все поддерживаемые переменные в правилах Content Switch и Content Modification. Переменные могут быть либо скалярными значениями, либо массивами.
Переменные для Content Modification¶
Скалярные переменные¶
Эти переменные содержат одиночные значения и могут использоваться внутри полей заголовков или значений куки.
$path— Путь запроса без query-параметров (например,/some/path)$client_addr— IP-адрес клиента$client_port— Порт клиента$server_addr— IP-адрес сервера в запросе$server_port— Порт сервера$scheme— Протокол (например,httpилиhttps)$http_host— Значение заголовкаHost$x_forwarded_for— Значение заголовкаX-Forwarded-For$forwarded— Значение заголовкаForwarded
Proxy-переменные¶
$proxy_add_x_forwarded_for— Автоматически добавляет IP-адрес клиента в цепочкуX-Forwarded-For. Если заголовок изначально отсутствует, эта переменная содержит IP-адрес клиента.Пример использования в правиле:
request header set name X-Forwarded-For value $proxy_add_x_forwarded_for$transition_forwarded_for— Предоставляет то же значение, что и$proxy_add_x_forwarded_for, но форматированное как заголовокForwarded. Это полезно для преобразованияX-Forwarded-ForвForwarded.Пример использования:
request header set name Forwarded value $transition_forwarded_for
Переменные для Content Switch¶
Скалярные переменные¶
Эти переменные содержат одиночные значения и могут использоваться внутри полей заголовков или значений куки.
$path— Путь запроса без query-параметров (например,/some/path)$method— Метод HTTP-запроса$content_length— Значение заголовкаContent-Length, если он присутствует$body— Содержимое тела HTTP-запроса$client_addr— IP-адрес клиента$client_port— Порт клиента$server_addr— IP-адрес сервера в запросе$server_port— Порт сервера$scheme— Протокол (например,httpилиhttps)
Переменные массива¶
Эти переменные структурированы как коллекции ключ-значение и доступны через строковые ключи:
$header— HTTP-заголовки запроса$cookie— Куки$query— Параметры запроса
Примеры использования:
$header["User-Agent"]
$cookie["session_id"]
Примечание
Ключи заголовков и куки не чувствительны к регистру.
Переменные SSL/TLS¶
Эти переменные доступны при использовании защищённого соединения (TLS/SSL). Они общие для Content Switch и Content Modification:
$ssl_verify_result— Результат проверки клиентского сертификата (например,NONE,SUCCESSилиFAILURE:<diagnostic>)$ssl_protocol— Версия протокола (например,TLS1.3)$ssl_sni— Строка Server Name Indication, если доступна$ssl_cipher— Набор шифров, используемый в SSL-соединении$ssl_client_v_end— Дата окончания действия клиентского сертификата (значение из поляNot After)$ssl_client_s_dn— Имя субъекта (Distinguished Name) из клиентского сертификата$ssl_client_i_dn— Имя отличия (issuer) из клиентского сертификата$ssl_client_serial— Серийный номер клиентского сертификата