Модуль ngx_stream_map_module Join us for the first quarterly NGINX Community Call on July 22nd to connect and discuss NGINX development. english русский новости [en] об nginx скачать безопасность [en] документация faq книги [en] сообщество компания x.com blog njs ingress controller gateway fabric Модуль 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 строка $переменная { ... } Умолчание: — Контекст: stream Создаёт новую переменную, значение которой зависит от значений одной или более исходных переменных, указанных в первом параметре. Поскольку переменные вычисляются только в момент использования, само по себе наличие даже большого числа объявлений переменных “map” не влечёт за собой никаких дополнительных расходов на обработку соединений. Параметры внутри блока map задают соответствие между исходными и результирующими значениями. Исходные значения задаются строками или регулярными выражениями. Строки проверяются без учёта регистра. Перед регулярным выражением ставится символ “~”, если при сравнении следует учитывать регистр символов, либо символы “~*”, если регистр символов учитывать не нужно. Регулярное выражение может содержать именованные и позиционные выделения, которые могут затем использоваться в других директивах совместно с результирующей переменной. Если исходное значение совпадает с именем одного из специальных параметров, описанных ниже, перед ним следует поставить символ “\”. В качестве результирующего значения можно указать текст, переменную и их комбинации. Также поддерживаются следующие специальные параметры: default значение задаёт результирующее значение, если исходное значение не совпадает ни с одним из перечисленных. Если параметр default не указан, результирующим значением по умолчанию будет пустая строка. hostnames указывает, что в качестве исходных значений можно использовать маску для первой или последней части имени хоста, например, *.example.com 1; example.* 1; Вместо двух записей example.com 1; *.example.com 1; можно использовать одну: .example.com 1; Этот параметр следует указывать перед списком значений. include файл включает файл со значениями. Включений может быть несколько. volatile указывает, что переменная не кэшируется (1.11.7). Поиск производится в следующем порядке приоритета и прекращается на первом подходящем варианте: строковое значение без маски самое длинное строковое значение с маской в начале, например “*.example.com” самое длинное строковое значение с маской в конце, например “mail.*” первое подходящее регулярное выражение (в порядке следования в конфигурационном файле) значение по умолчанию (default) Синтаксис: map_hash_bucket_size размер; Умолчание: map_hash_bucket_size 32|64|128; Контекст: stream Задаёт размер корзины в хэш-таблицах для переменных map. Значение по умолчанию зависит от размера строки кэша процессора. Подробнее настройка хэш-таблиц обсуждается в отдельном документе. Синтаксис: map_hash_max_size размер; Умолчание: map_hash_max_size 2048; Контекст: stream Задаёт максимальный размер хэш-таблиц для переменных map. Подробнее настройка хэш-таблиц обсуждается в отдельном документе.