Spec-Zone.ru › nginx

Модуль ngx_http_keyval_module

  • Пример конфигурации
  • Директивы
  • keyval
  • keyval_zone

Модуль ngx_http_keyval_module (1.13.3) создаёт переменные со значениями, взятыми из пар «ключ-значение», управляемых API, или переменной (1.15.10), которую также можно задать с помощью njs.

Данный модуль доступен в рамках нашей коммерческой подписки.

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

http {

    keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval;
    keyval $arg_text $text zone=one;
    ...
    server {
        ...
        location / {
            return 200 $text;
        }

        location /api {
            api write=on;
        }
    }
}

Директивы

Синтаксис: keyval key $variable zone=name;
По умолчанию: —
Контекст: http

Создаёт новую $variable, значение которой ищется по key в базе данных «ключ-значение». Правила сопоставления определяются параметром type директивы keyval_zone. База данных хранится в зоне общей памяти, заданной параметром zone.

Синтаксис: keyval_zone zone=name:size [state=file] [timeout=time] [type=string|ip|prefix] [sync];
По умолчанию: —
Контекст: http

Задаёт name и size зоны общей памяти, которая хранит базу данных «ключ-значение». Пары «ключ-значение» управляются API.

Необязательный параметр state задаёт file, хранящую текущее состояние базы данных «ключ-значение» в формате JSON и обеспечивающую её сохранение при перезапуске nginx. Избегайте непосредственного изменения содержимого файла.

Примеры:

keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux
keyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval;  # path for FreeBSD

Необязательный параметр timeout (1.15.0) задаёт время, по истечении которого пары «ключ-значение» удаляются из зоны.

Необязательный параметр type (1.17.1) активирует дополнительный индекс, оптимизированный для сопоставления ключа определённого типа, и определяет правила сопоставления при оценке keyval $variable.

Индекс хранится в той же зоне общей памяти, что и требует дополнительного места.
type=string
По умолчанию, индекс не включён; поиск переменной выполняется с использованием точного совпадения ключа записи и ключа поиска
type=ip
Ключ поиска — текстовое представление адреса IPv4 или IPv6 или диапазона CIDR; для сопоставления с ключом записи ключ поиска должен принадлежать подсети, заданной ключом записи, или точно совпадать с IP-адресом
type=prefix
Поиск переменной выполняется с использованием префиксного сопоставления ключа записи и ключа поиска (1.17.5); для сопоставления с ключом записи ключ записи должен быть префиксом ключа поиска

Необязательный параметр sync (1.15.0) включает синхронизацию зоны общей памяти с помощью синхронизации. Для синхронизации необходимо установить параметр timeout.

Если синхронизация включена, удаление пар «ключ-значение» (независимо от того, одной или всех) будет выполняться только на целевом узле кластера. Те же пары «ключ-значение» на других узлах кластера будут удалены при timeout.

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/http/ngx_http_keyval_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API