Map#
Cria variáveis cujos valores dependem de valores de outras variáveis.
Exemplo de Configuração#
map $remote_addr $limit {
127.0.0.1 "";
default $binary_remote_addr;
}
limit_conn_zone $limit zone=addr:10m;
limit_conn addr 1;
Diretivas#
map#
Cria uma nova variável. Seu valor depende do primeiro parâmetro, especificado como uma string com variáveis, por exemplo:
set $var1 "foo";
set $var2 "bar";
map $var1$var2 $new_variable {
default "foobar_value";
}
Aqui, a variável $new_variable terá um valor
composto pelas duas variáveis $var1 e $var2,
ou um valor padrão se essas variáveis não estiverem definidas.
Nota
Como as variáveis são avaliadas apenas quando são usadas, a mera declaração mesmo de um grande número de variáveis "map" não adiciona custos extras ao processamento de requisições.
Parâmetros dentro do bloco map especificam um mapeamento entre valores de origem e resultantes.
Valores de origem são especificados como strings ou expressões regulares.
Strings são comparadas ignorando maiúsculas e minúsculas.
Uma expressão regular deve começar com o símbolo ~ para correspondência sensível a maiúsculas e minúsculas, ou com os símbolos ~* para correspondência insensível a maiúsculas e minúsculas. Uma expressão regular pode conter capturas nomeadas e posicionais que podem ser usadas posteriormente em outras diretivas junto com a variável resultante.
Se um valor de origem corresponder a um dos nomes dos parâmetros especiais descritos abaixo, ele deve ser prefixado com o símbolo \.
O valor resultante pode conter texto, variáveis e sua combinação.
Os seguintes parâmetros especiais também são suportados:
| define o valor resultante se o valor de origem não corresponder a nenhuma das variantes especificadas. Quando default não é especificado, o valor resultante padrão será uma string vazia. |
| indica que valores de origem podem ser nomes de host com uma máscara de prefixo ou sufixo. Este parâmetro deve ser especificado antes da lista de valores. |
Por exemplo,
*.example.com 1;
example.* 1;
Os seguintes dois registros
example.com 1;
*.example.com 1;
podem ser combinados:
.example.com 1;
| inclui um arquivo com valores. Pode haver várias inclusões. |
| indica que a variável não é cacheável. |
Se o valor de origem corresponder a mais de uma das variantes especificadas, por exemplo, tanto uma máscara quanto uma expressão regular correspondem, a primeira variante correspondente será escolhida, na seguinte ordem de prioridade:
Valor string sem máscara
Valor string mais longo com máscara de prefixo, por exemplo
*.example.comValor string mais longo com máscara de sufixo, por exemplo
mail.*Primeira expressão regular correspondente (na ordem de aparição no arquivo de configuração)
Valor padrão (
default)
map_hash_bucket_size#
Define o tamanho do bucket para as tabelas hash das variáveis map. O valor padrão depende do tamanho da linha de cache do processador. Os detalhes da configuração de tabelas hash são fornecidos separadamente.
map_hash_max_size#
Define o tamanho máximo das tabelas hash das variáveis map. Os detalhes da configuração de tabelas hash são fornecidos separadamente.