Limitar solicitações por minuto no nginx

4

Gostaria de definir um limite para o número de solicitações que um único endereço IP de cliente pode fazer ao meu servidor, com base em seu endereço IP. Nginx tem uma diretiva limit_req_zone . No entanto, essa diretiva limitará os hits average . Se eu definir meu limite como rate=6r/m , ele permitirá apenas um hit a cada 10 segundos.

Em vez disso, o que preciso é um limite real por minuto. Por exemplo. o cliente deve ser capaz de disparar 3 ou 4 pedidos rapidamente um após o outro ou até mesmo simultaneamente, mas não mais do que, por exemplo. 10 por minuto. Existe uma maneira de fazer isso?

    
por Jeroen 25.04.2012 / 22:12

1 resposta

3

Ah, acho que isso pode ser feito com a configuração nodelay como descrito na parte inferior da wiki limit_req :

Se atrasar pedidos em excesso dentro de uma rajada não for necessário, você deve usar a opção nodelay:

limit_req   zone=one  burst=5  nodelay;
    
por 25.04.2012 / 23:03