Geo#
O módulo cria variáveis com valores dependendo do endereço IP do cliente. 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. Pode haver várias inclusões. 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. Exemplo: O arquivo Um valor da correspondência mais específica é usado. Por exemplo, para o endereço Exemplo com intervalos: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 conexões.delete
default
0.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 vaziainclude
ranges
geo $country {
default ZZ;
include conf/geo.conf;
delete 127.0.0.0/16;
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;
}