Was ist die Definition eines Bursts in der Einstellung Nginx limit_req?

9

Was ist der Unterschied zwischen diesen:

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

und:

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

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

Gajus
quelle

Antworten:

1

In deinem Fall:

Lassen Sie durchschnittlich nicht mehr als 30 Anforderungen pro Sekunde zu, wobei Bursts 5 Anforderungen nicht überschreiten.

Referenz: http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Alan Ivey
quelle
2
Die Verwendung des in seiner Definition definierten Wortes ist nicht sehr nützlich. Was ist ein "Burst" im Kontext von limit_req? (Die anderen Antworten beantworten dies)
Jahed
15

Wie es über Burst auf http://nginx.org/en/docs/http/ngx_http_limit_req_module.html heißt

Übermäßige Anforderungen werden verzögert, bis ihre Anzahl die maximale Burst-Größe überschreitet

Dies bedeutet in Ihrem Fall, dass die ersten 5 Anforderungen "ignoriert" werden und nur die Anforderungen ab 6 gezählt werden. Auf Anfrage 35 ist also das Limit von 30 erreicht. Dann sendet nginx auf Anfrage 36 innerhalb derselben 1 Sekunde, die von demselben Ursprung kommt, eine 503-Antwort, anstatt die Anfrage weiter zu behandeln.

RavanH
quelle
6

Burst bedeutet, dass es für die nächste Sekunde verzögert wird. Wenn mehr als 30 Anfragen pro Sekunde vorliegen, sendet nginx 503 Fehlercode.

Burst funktioniert wie eine Warteschlange

Gaptek Update
quelle