keyval

Директива `keyval` определяет переменную, которая извлекает значения из key-value store на основе заданных пар ключ/значение.

Синтаксисkeyval $key $variable zone=zone_name;
По умолчаниюnone
Контекстstream
Аргументы3

Описание

Директива keyval используется для создания именованной переменной, которая динамически заполняется данными из заранее заданных пар key-value, хранящихся либо в общей памяти, либо в бэкенде Redis. В своей работе директива принимает три аргумента: первый аргумент задаёт ключ, который может быть комбинацией статических строк и NGINX-переменных, второй аргумент указывает имя переменной, в которую будет присвоено значение, соответствующее этому ключу. Значения, сохранённые по ключам, могут иметь срок жизни (TTL), что делает директиву подходящей для сценариев, требующих временного хранения данных. Кроме того, третий аргумент позволяет указать зону общей памяти, где хранятся пары ключ-значение, что способствует масштабируемости и производительности за счёт использования встроенных возможностей управления памятью NGINX.

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

http {
    keyval_zone zone=one:32k;
    keyval $arg_text $text zone=one;

    server {
        listen 80;

        location / {
            return 200 $text;
        }
    }
}

Убедитесь, что зона памяти, указанная с помощью zone=, правильно определена; в противном случае значения могут быть недоступны.

При использовании динамических переменных в ключах проверьте, что они не вычисляются в пустое значение; это может привести к непреднамеренному поведению.

Имена ключей должны быть уникальными в пределах указанной зоны, чтобы предотвратить конфликты данных.

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