Bom dia. Aqui é Miyashita da infraestrutura.
Desta vez será uma configuração relacionada a logs para nginx.
Sumário
Introdução
Queria implementar uma configuração no nginx que não gera logs de um NW específico usando a definição de setenv, que é frequentemente implementada no Apache, mas não tinha a mesma função, então pesquisei. Quanto ao uso, pode ser usado quando for conveniente não gerar logs, como verificar a saúde do balanceador de carga ou conectar a partir de um servidor de monitoramento. Não é necessário para análise, e também reduz entradas/saídas desnecessárias do DISCO.
O que é ngx_http_geo_module
Você pode definir o endereço IP como uma variável conforme descrito na documentação.
É comumente usado quando o NW em um país específico se recusa a se conectar. Nesses casos, também é possível gerenciá-lo com um arquivo separado registrado em grandes quantidades por inclusão.
Configurando nginx
nginx.conf.
[shell]# vi nginx.conf http { include mime.types; # não acesso_log IP geo $no_log { padrão 0; 172.0.1.0/24 1; } servidor { (omitido) localização / { raiz /var/www/html; índice index.cgi index.php index.html index.htm; if ($no_log) { access_log desligado; } } } } [/shell]
A sintaxe básica é geo [$address] $variable { ... }. "default" é "0" para tudo que não está incluído na condição, e o IP especificado é "1". Se ($variable) { access_log off; } estiver escrito no local da hierarquia que você deseja restringir, se () { access\ off; } Se você escrever "1", o log correspondente a "1" não será gerado.
Por fim, reinicie o nginx.
[shell]# /etc/init.d/nginx reiniciar[/shell]
Agora o acesso _log não mostra mais os registros de conexão das versões 172.0.1.0/24.
Parece que dá para fazer com Serenv como Apache, mas isso foi mais fácil com Enginx.
Site de Referência
NGX_http_geo_module módulo Geo do NGinx é conveniente demais