Jaka jest definicja serii w ustawieniu limit_req Nginx?

9

Jaka jest różnica między tym:

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

i:

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

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

Gajus
źródło

Odpowiedzi:

1

W Twoim przypadku:

średnio nie zezwalaj na więcej niż 30 żądań na sekundę, przy seriach nie przekraczających 5 żądań.

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

Alan Ivey
źródło
2
Użycie słowa zdefiniowanego w jego definicji nie jest zbyt przydatne. Co to jest „seria” w kontekście limit_req? (Odpowiedzi na to inne odpowiedzi)
Jahed
15

Jak mówi o serii na http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

Nadmierne żądania są opóźniane, dopóki ich liczba nie przekroczy maksymalnego rozmiaru serii

Oznacza to, że w twoim przypadku pierwsze 5 żądań jest „ignorowanych” i liczone są tylko wnioski 6 i więcej. Na żądanie 35 limit 30 został osiągnięty. Następnie, na żądanie 36 w ciągu tej samej 1 sekundy pochodzącej z tego samego źródła, nginx wyśle ​​odpowiedź 503 zamiast dalszego przetwarzania żądania.

RavanH
źródło
6

Seria oznacza, że ​​będzie opóźnione o następną sekundę, jeśli będzie więcej niż 30 żądań na sekundę, to nginx wyśle ​​kod błędu 503.

Seria działa jak kolejka

Aktualizacja Gaptek
źródło