let
Директива 'let' позволяет определять переменные путём вычисления арифметических и строковых операций в конфигурации NGINX.
Описание
Директива '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";
Убедитесь, что вокруг каждого токена в выражении есть пробелы.
Некорректный синтаксис, например отсутствие пробелов, приведет к ошибкам конфигурации.
Арифметические операции поддерживают только беззнаковые целые числа.
Конкатенация строк выполняется с помощью оператора '.'.