Limit Conn#
O módulo é usado para limitar o número de conexões por chave definida, em particular, o número de conexões de um único endereço IP. Define a zona de memória compartilhada e o número máximo permitido de conexões para um determinado valor de chave. Quando este limite é excedido, o servidor fechará a conexão. Por exemplo, as diretivas permitem apenas uma conexão por endereço IP por vez. Quando várias diretivas Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas Habilita o modo de execução simulada. Neste modo, o número de conexões não é limitado, porém, na zona de memória compartilhada, o número de conexões excessivas é contabilizado normalmente. Padrão stream, server Define o nível de log desejado para casos quando o servidor limita o número de conexões. Define parâmetros para uma zona de memória compartilhada que manterá estados para várias chaves. Em particular, o estado inclui o número atual de conexões. A chave pode conter texto, variáveis e suas combinações. Conexões com valor de chave vazio não são contabilizadas. Exemplo de uso: Aqui, um endereço IP do cliente é definido pela variável O tamanho de Uma zona de um megabyte pode manter cerca de 32 mil estados de 32 bytes ou cerca de 16 mil estados de 64 bytes. Se o armazenamento da zona for esgotado, o servidor fechará a conexão. mantém o resultado da limitação do número de conexões: Exemplo de Configuração#
stream {
limit_conn_zone $binary_remote_addr zone=addr:10m;
...
server {
...
limit_conn addr 1;
limit_conn_log_level error;
}
}
Diretivas#
limit_conn#
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
...
limit_conn addr 1;
}
limit_conn
são especificadas, qualquer limite configurado será aplicado.limit_conn
definidas no nível atual.limit_conn_dry_run#
limit_conn_log_level#
limit_conn_log_level
info
| notice
| warn
| error
;limit_conn_log_level error;
limit_conn_zone#
limit_conn_zone $binary_remote_addr zone=addr:10m;
$binary_remote_addr
.$binary_remote_addr
é 4 bytes para endereços IPv4 ou 16 bytes para endereços IPv6. O estado armazenado sempre ocupa 32 ou 64 bytes em plataformas de 32 bits e 64 bytes em plataformas de 64 bits.Variáveis Integradas#
$limit_conn_status
#PASSED
,
REJECTED
ou REJECTED_DRY_RUN