Spec-Zone.ru › nginx

Модуль ngx_stream_map_module

  • Пример конфигурации
  • Директивы
  • map
  • map_hash_bucket_size
  • map_hash_max_size

Модуль ngx_stream_map_module (1.11.2) создаёт переменные, значения которых зависят от значений других переменных.

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

map $remote_addr $limit {
    127.0.0.1    "";
    default      $binary_remote_addr;
}

limit_conn_zone $limit zone=addr:10m;
limit_conn addr 1;

Директивы

Синтаксис: map string $variable { ... }
По умолчанию: —
Контекст: stream

Создаёт новую переменную, значение которой зависит от значений одной или нескольких исходных переменных, указанных в первом параметре.

Поскольку переменные вычисляются только при использовании, само по себе объявление даже большого числа переменных «map» не увеличивает затраты на обработку соединений.

Параметры внутри блока map задают соответствие между исходными и результирующими значениями.

Исходные значения задаются в виде строк или регулярных выражений.

При сопоставлении строк регистр не учитывается.

Регулярное выражение должно начинаться либо с символа «~» для сопоставления с учётом регистра, либо с символов «~*» для сопоставления без учёта регистра. Регулярное выражение может содержать именованные и позиционные захваты, которые затем можно использовать в других директивах вместе с результирующей переменной.

Если исходное значение совпадает с одним из имён специальных параметров, описанных ниже, перед ним следует поставить символ «\».

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

Также поддерживаются следующие специальные параметры:

default value
задаёт результирующее значение, если исходное значение не совпадает ни с одним из указанных вариантов. Если default не задан, результирующим значением по умолчанию будет пустая строка.
hostnames
указывает, что исходные значения могут быть именами хостов с маской-префиксом или маской-суффиксом:
*.example.com 1;
example.*     1;
Следующие две записи
example.com   1;
*.example.com 1;
можно объединить:
.example.com  1;
Этот параметр следует указывать перед списком значений.
include file
подключает файл со значениями. Можно подключить несколько файлов.
volatile
указывает, что переменная не кэшируется (1.11.7).

Поиск выполняется в следующем порядке приоритета и завершается при первом совпавшем варианте:

  1. строковое значение без маски
  2. самое длинное строковое значение с маской-префиксом, например «*.example.com»
  3. самое длинное строковое значение с маской-суффиксом, например «mail.*»
  4. первое совпавшее регулярное выражение (в порядке появления в файле конфигурации)
  5. значение по умолчанию
Синтаксис: map_hash_bucket_size size;
По умолчанию: map_hash_bucket_size 32|64|128;
Контекст: stream

Задаёт размер корзины для хеш-таблиц переменных map. Значение по умолчанию зависит от размера строки кэша процессора. Подробная информация о настройке хеш-таблиц приведена в отдельном документе.

Синтаксис: map_hash_max_size size;
По умолчанию: map_hash_max_size 2048;
Контекст: stream

Задаёт максимальный size хеш-таблиц переменных map. Подробная информация о настройке хеш-таблиц приведена в отдельном документе.

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

Spec-Zone.ru

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