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 .

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


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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.