Qual é a definição de uma explosão na configuração Nginx limit_req?

9

Qual é a diferença entre isso:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood nodelay

e:

limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s;
limit_req zone=flood burst=5 nodelay

Documentação http://wiki.nginx.org/HttpLimitReqModule .

Gajus
fonte

Respostas:

1

No seu caso:

permita não mais que 30 solicitações por segundo em média, com rajadas que não excedam 5 solicitações.

Referência: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Alan Ivey
fonte
2
Usar a palavra que está sendo definida em sua definição não é muito útil. O que é uma "explosão" no contexto de limit_req? (As outras respostas responder a esta)
Jahed
15

Como diz o burst em http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Solicitações excessivas são adiadas até que seu número exceda o tamanho máximo de intermitência

Isso significa que, no seu caso, as 5 primeiras solicitações são 'ignoradas' e apenas as solicitações 6 e superiores são contadas. Portanto, a pedido 35, o limite de 30 é atingido. Em seguida, no pedido 36 dentro do mesmo 1 segundo proveniente da mesma origem, o nginx enviará uma resposta 503 em vez de tratar o pedido ainda mais.

RavanH
fonte
6

Burst significa que será adiado pelo próximo segundo, se houver um excesso de 30 solicitações / segundo, o nginx enviará o código de erro 503.

O Burst funciona como uma fila

Atualização Gaptek
fonte