On this page
Module ngx_stream_map_module
The ngx_stream_map_module
module (1.11.2) creates variables whose values depend on values of other variables.
Example Configuration
map $remote_addr $limit {
127.0.0.1 "";
default $binary_remote_addr;
}
limit_conn_zone $limit zone=addr:10m;
limit_conn addr 1;
Directives
Syntax: | map |
---|---|
Default: | — |
Context: | stream |
Creates a new variable whose value depends on values of one or more of the source variables specified in the first parameter.
map
” variables does not add any extra costs to connection processing.
Parameters inside the map
block specify a mapping between source and resulting values.
Source values are specified as strings or regular expressions.
Strings are matched ignoring the case.
A regular expression should either start from the “~
” symbol for a case-sensitive matching, or from the “~*
” symbols for case-insensitive matching. A regular expression can contain named and positional captures that can later be used in other directives along with the resulting variable.
If a source value matches one of the names of special parameters described below, it should be prefixed with the “\
” symbol.
The resulting value can contain text, variable, and their combination.
The following special parameters are also supported:
default
value
-
sets the resulting value if the source value matches none of the specified variants. When
default
is not specified, the default resulting value will be an empty string. hostnames
-
indicates that source values can be hostnames with a prefix or suffix mask:
*.example.com 1; example.* 1;
example.com 1; *.example.com 1;
.example.com 1;
include
file
- includes a file with values. There can be several inclusions.
volatile
- indicates that the variable is not cacheable (1.11.7).
If the source value matches more than one of the specified variants, e.g. both a mask and a regular expression match, the first matching variant will be chosen, in the following order of priority:
- string value without a mask
- longest string value with a prefix mask, e.g. “
*.example.com
” - longest string value with a suffix mask, e.g. “
mail.*
” - first matching regular expression (in order of appearance in a configuration file)
- default value
Syntax: | map_hash_bucket_size |
---|---|
Default: |
|
Context: | stream |
Sets the bucket size for the map variables hash tables. Default value depends on the processor’s cache line size. The details of setting up hash tables are provided in a separate document.
Syntax: | map_hash_max_size |
---|---|
Default: |
|
Context: | stream |
Sets the maximum size
of the map variables hash tables. The details of setting up hash tables are provided in a separate document.