limit_req

Евгений Торопов jt на aaanet.ru
Вс Янв 2 23:53:39 MSK 2011



> 
>> On 01/02/2011 11:40 AM, Евгений Торопов wrote:
>>> Добрый вечер,
>>> 
>>> nginx version: nginx/0.8.54
>>> 
>>> Отрывок из конфига:
>>> 
>>> ...
>>> limit_req_zone  $binary_remote_addr  zone=test:10m   rate=10000r/s;
>>> location /some/url {
>>> 	limit_req   zone=test;
>>> }
>>> ...
>>> 
>>> Даже при таком огромном рейте видим в error log-е:
>>> 
>>> ...
>>> 2011/01/02 19:35:44 [error] 8663#0: *21852 limiting requests, excess: 1.000 by zone "test", client: xxx.xxx.xxx.xxx, server: site.com, request: "POST /some/url HTTP/1.0", host: "www.site.com"
>>> 2011/01/02 19:35:44 [error] 8663#0: *21853 limiting requests, excess: 1.000 by zone "test", client: xxx.xxx.xxx.xxx, server: site.com, request: "POST /some/url HTTP/1.0", host: "www.site.com"
>>> 2011/01/02 19:35:44 [error] 8663#0: *21849 limiting requests, excess: 1.000 by zone "test", client: xxx.xxx.xxx.xxx, server: site.com, request: "POST /some/url HTTP/1.0", host: "www.site.com"
>>> 2011/01/02 19:35:44 [error] 8663#0: *21850 limiting requests, excess: 1.000 by zone "test", client: xxx.xxx.xxx.xxx, server: site.com, request: "POST /some/url HTTP/1.0", host: "www.site.com"
>>> ...
>>> 
>>> Расскажите, пожалуйста, как такое возможно.
>>> 
>>> Спасибо.
>>> 
>>> Евгений
>>> jt at aaanet.ru
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru at nginx.org
>>> http://nginx.org/mailman/listinfo/nginx-ru
>> 
>> Включите параметр burst=X
>> 
>> Без параметра burst, если новый запрос пришёл в течении 1s/10000 = 10us от прежде отработанного, то он будет отброшен.
>> Если же есть burst=X, то до X новых запросов будут отработаны, но интервал будет увеличен каждый раз на 10us. Если придёт >X запросов в интервале, они будут отрублены.
>> 
> 
> Хм, то есть я правильно понимаю, что я никак не могу разрешить обработку _всех_ запросов, приходящих пачками, к примеру, по 5 штук (то есть почти одновременно) при том, что общее их число укладывается в rate, равный, к примеру, 1000r/m?
> 
> Евгений
> jt at aaanet.ru
> 

Хотя понял - просто burst=5. Спасибо.


Подробная информация о списке рассылки nginx-ru