Quelle est la définition d'une rafale dans le paramètre Nginx limit_req?

9

Quelle est la différence entre cela:

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

et:

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

Documentation http://wiki.nginx.org/HttpLimitReqModule .

Gajus
la source

Réponses:

1

Dans ton cas:

n'autorisez pas plus de 30 requêtes par seconde en moyenne, avec des rafales ne dépassant pas 5 requêtes.

Référence: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Alan Ivey
la source
2
L'utilisation du mot défini dans sa définition n'est pas très utile. Qu'est-ce qu'un "burst" dans le contexte de limit_req? (Les autres réponses répondent à cette question)
Jahed
15

Comme il est dit sur burst sur http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Les demandes excessives sont retardées jusqu'à ce que leur nombre dépasse la taille de rafale maximale

Cela signifie que dans votre cas, les 5 premières demandes sont «ignorées» et seules les demandes 6 et plus sont comptées. Donc sur demande 35 la limite de 30 est atteinte. Ensuite, à la demande 36 dans la même 1 seconde provenant de la même origine, nginx enverra une réponse 503 au lieu de traiter la demande plus loin.

RavanH
la source
6

Burst signifie qu'il sera retardé pendant la seconde suivante, s'il y a un excès de 30 requêtes / seconde, alors nginx envoie le code d'erreur 503.

Burst fonctionne comme une file d'attente

Mise à jour Gaptek
la source