Map#
Cria variáveis cujos valores dependem de valores de outras variáveis. Cria uma nova variável.
Seu valor depende do primeiro parâmetro, especificado como uma string com variáveis,
por exemplo: Aqui, a variável 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 Valores de origem são especificados como strings ou expressões regulares. Strings são correspondidas ignorando maiúsculas e minúsculas. Uma expressão regular deve começar com o símbolo 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ável 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 hostnames com uma máscara de prefixo ou sufixo. Este parâmetro deve ser especificado antes da lista de valores. Por exemplo, Os seguintes dois registros podem ser combinados: 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 Valor string mais longo com máscara de sufixo, por exemplo Primeira expressão regular correspondente (na ordem de aparição no arquivo de configuração) Valor padrão ( 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. Define o tamanho máximo das tabelas hash das variáveis map. Os detalhes da configuração de tabelas hash são fornecidos separadamente.Exemplo de Configuração#
map $http_host $name {
hostnames;
default 0;
example.com 1;
*.example.com 1;
example.org 2;
*.example.org 2;
.example.net 3;
wap.* 4;
}
map $http_user_agent $mobile {
default 0;
"~Opera Mini" 1;
}
Diretivas#
map#
set $var1 "foo";
set $var2 "bar";
map $var1$var2 $new_variable {
default "foobar_value";
}
$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.map
especificam um mapeamento entre valores de origem e resultantes.~
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.\
.default
valuehostnames
*.example.com 1;
example.* 1;
example.com 1;
*.example.com 1;
.example.com 1;
include
filevolatile
*.example.com
mail.*
default
)map_hash_bucket_size#
map_hash_max_size#