Geo#
O módulo cria variáveis com valores dependendo do endereço IP do cliente.
Ao compilar a partir do código-fonte, o módulo é
compilado por padrão; ele pode ser desabilitado com a opção de
compilação --without-http_geo_module.
Em pacotes e imagens de nossos repositórios, o
módulo está incluído na compilação. Descreve a dependência dos valores da variável especificada no endereço IP do cliente. Por padrão, o endereço é obtido da variável $remote_addr, mas também pode ser obtido de outra variável, por exemplo: Nota Como as variáveis são avaliadas apenas quando usadas, a mera existência de até mesmo um grande número de variáveis Se o valor de uma variável não representa um endereço IP válido, então o endereço "255.255.255.255" é usado. Os endereços são especificados como prefixos em notação CIDR (incluindo endereços individuais) ou como intervalos. Os seguintes parâmetros especiais também são suportados: exclui a rede especificada o valor definido para a variável se o endereço do cliente não corresponder a nenhum dos endereços especificados. Quando os endereços são especificados em notação CIDR, inclui um arquivo com endereços e valores. O nome do arquivo pode conter curingas (glob); nesse caso, todos os arquivos correspondentes são incluídos. Pode haver várias inclusões. define endereços confiáveis. Quando uma requisição vem de um endereço confiável, um endereço do campo de cabeçalho de requisição habilita busca recursiva de endereço. Se a busca recursiva estiver desabilitada, então em vez do endereço original do cliente que corresponde a um dos endereços confiáveis, o último endereço enviado em indica que os endereços são especificados como intervalos. Este parâmetro deve ser o primeiro. Para acelerar o carregamento de uma base geo, os endereços devem ser colocados em ordem crescente. indica que a variável não é cacheável. Exemplo: O arquivo O valor da correspondência mais específica é usado. Por exemplo, para o endereço Exemplo de descrição de intervalo:Exemplo de configuração#
geo $geo {
default 0;
127.0.0.1 2;
192.168.1.0/24 1;
10.1.0.0/16 1;
::1 2;
2001:0db8::/32 1;
}
Diretivas#
geo#
geo $arg_remote_addr $geo {
...;
}
geo declaradas não causa custos extras para o processamento de requisições.deletedefault0.0.0.0/0 e ::/0 podem ser usados em vez de default. Quando default não é especificado, o valor padrão será uma string vaziaincludeproxyX-Forwarded-For será usado em seu lugar. Em contraste com os endereços regulares, endereços confiáveis são verificados sequencialmente.proxy_recursiveX-Forwarded-For será usado. Se a busca recursiva estiver habilitada, então em vez do endereço original do cliente que corresponde a um dos endereços confiáveis, o último endereço não confiável enviado em X-Forwarded-For será usado.rangesvolatilegeo $country {
default ZZ;
include conf/geo.conf;
delete 127.0.0.0/16;
proxy 192.168.100.0/24;
proxy 2001:0db8::/32;
127.0.0.0/24 US;
127.0.0.1/32 RU;
10.1.0.0/16 RU;
192.168.1.0/24 UK;
}
conf/geo.conf poderia conter as seguintes linhas:10.2.0.0/16 RU;
192.168.2.0/24 RU;
127.0.0.1, o valor RU será escolhido, não US.geo $country {
ranges;
default ZZ;
127.0.0.0-127.0.0.0 US;
127.0.0.1-127.0.0.1 RU;
127.0.0.2-127.0.0.255 US;
10.1.0.0-10.1.255.255 RU;
192.168.1.0-192.168.1.255 UK;
}