Re: limit req zone - некорректый подсчет числа запростов ?
Валентин Бартенев
vbart at nginx.com
Wed Sep 11 20:07:52 UTC 2013
On Wednesday 11 September 2013 23:59:39 SergeyFs wrote:
> Добрый день всем...
>
> Пытался сделать ограничение кол-ва запросов для одного локейшена, и
> сталкнулся с непонятным для меня эффектом.
>
> AWS, nginx стоит за лоад балансером.
>
> nginx.conf :
>
> set_real_ip_from 10.0.0.0/16;
> real_ip_header X-Forwarded-For;
> real_ip_recursive on;
>
> limit_req_zone $binary_remote_addr zone=basic:16m rate=300r/s;
>
> ......
> location ~* \.(html)$ {
> limit_req zone=basic nodelay;
> .....
>
> Лимит специально сделан сильно выше, чем в принципе нужно (реквест рэйт
> вообще не превышает 10r/s по данным амазона) Но несмотря на это я в логах
> вижу (поправил dns и ip):
>
> 2013/09/09 23:19:54 [error] 4818#0: *328855 limiting requests, excess:
> 0.700 by zone "basic", client: 6.1.2.194, server: dev.testserver.io,
> request: "GET /scripts/ops/views/organizations/organizations.html
> HTTP/1.1", host: "dev.testserver.io", referrer:
> "https://dev.testserver.io/ops.html" 2013/09/09 23:21:46 [error] 4818#0:
> *329120 limiting requests, excess: 1.000 by zone "basic", client:
> 6.1.2.194, server: dev.testserver.io, request: "GET
> /scripts/ops/views/organizations/organizations.html HTTP/1.1", host:
> "dev.tesserver.io", referrer: "https://dev.testserver.io/ops.html"
> 2013/09/09 23:21:46 [error] 4818#0: *329120 limiting requests, excess:
> 0.700 by zone "basic", client: 6.1.2.194, server: dev.testserver.io,
> request: "GET /scripts/ops/views/organizations/organizations.list.html
> HTTP/1.1", host: dev.testserver.io", referrer:
> "https://dev.testserver.io/ops.html"
>
>
> подскажите, пожалуйста, в чем может быть причина...
В том, что "реквест рэйт" все-таки превысил 300r/s. Это не так сложно, как
может показаться. Достаточно послать два запроса с интервалом менее 3-х
миллисекунд.
--
Валентин Бартенев
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru