let

Директива 'let' позволяет определять переменные путём вычисления арифметических и строковых операций в конфигурации NGINX.

Синтаксисlet variable_name expression;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1+

Описание

Директива 'let' в NGINX предоставляет способ создавать переменные на основе вычисляемых выражений прямо в конфигурации. Она поддерживает различные арифметические операции, такие как сложение, вычитание, умножение, деление и взятие по модулю, а также строковые операции, например конкатенацию. Допускается использование скобок для группировки выражений, что позволяет выполнять более сложные вычисления и манипуляции со строками. Важно соблюдать правила синтаксиса, особенно касающиеся пробелов, поскольку директива использует парсер конфигурации NGINX как lexer, который требует пробелов вокруг каждой операции и между токенами.

Эту директиву можно использовать в нескольких контекстах: http, server и location блоках. Директива ожидает один или несколько аргументов, где первый аргумент — это переменная для хранения результата, а последующие аргументы составляют выражение для вычисления. В выражении могут использоваться целые числа, шестнадцатеричные значения, другие переменные и строковые литералы. Например, let $value (1 + 2); корректно присвоит $value значение 3 при правильных пробелах. Неправильное форматирование может привести к синтаксическим ошибкам, что является распространённой проблемой для пользователей, связанной с пробелами вокруг операторов.

Пример конфига

let $value ( $uid + 0x12 ) * $offset - 100;
let $remainder $number % 100;
let $welcome "Hi, " . $user . ", you have " . $num . " data items";

Убедитесь, что вокруг каждого токена в выражении есть пробелы.

Некорректный синтаксис, например отсутствие пробелов, приведет к ошибкам конфигурации.

Арифметические операции поддерживают только беззнаковые целые числа.

Конкатенация строк выполняется с помощью оператора '.'.

← Ко всем директивам