ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: limit_req_zone на конкретный url



On Monday 30 December 2013 03:25:11 denis wrote:
> Приветствую.
> 
> Есть необходимость ограничить обращения к конкретному урлу, причём не
> учитывая аргументов. То есть что-то вроде
> limit_req_zone $server_name$uri zone=one:10m 5r/m;
> 
> location = /lalala {
> ...
> limit_req zone=one nodelay;
> }
> 
> при этом все ссылки вида /lalala?aaa=bbb также должны обработаться.
> Корректна ли конструкция $server_name$uri ? И как описывать путь до "?"
> 

Некорректна, поскольку директива limit_req_zone может принимать только одну 
переменную.  Читайте документацию: http://nginx.org/r/limit_req_zone/ru

Правильно будет разнести все хосты по отдельным блокам server и на каждый 
выделить свою зону с $uri.

В крайнем случае можно воспользоваться директивой set:

  set $limit $server_name$uri;

http://nginx.org/r/set/ru


> И попутно такой вопрос: точно ли r/m работает корректно?

Точно.


> Есть подозрение, что оно работает неправильно...
> прописана зона с описанием
> limit_req_zone $server_name zone=one:10m 5r/m;
> location тот же. Должны первые 5 запросов пропустить, остальные в
> течении минуты - срезать.

Не должны.

Встречный вопрос: если в городе ограничение скорости 60 км/ч, то должны
ли вы проехать минимум 60 километров прежде чем может быть зафиксировано 
превышение скорости?

В вашей конфигурации, чтобы запрос был отклонен, достаточно послать его
с интервалом менее 12 секунд от предыдущего успешного.

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.