Spec-Zone.ru › nginx

Модуль ngx_stream_keyval_module

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

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

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

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

http {

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

stream {

    keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval;
    keyval      $ssl_server_name $name zone=one;

    server {
        listen              12345 ssl;
        proxy_pass          $name;
        ssl_certificate     /usr/local/nginx/conf/cert.pem;
        ssl_certificate_key /usr/local/nginx/conf/cert.key;
    }
}

Директивы

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

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

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

Устанавливает 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/stream/ngx_stream_keyval_module.html

Spec-Zone.ru

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