Re: map и limit req

Валентин Бартенев vbart at nginx.com
Wed Mar 20 19:42:41 UTC 2013


On Wednesday 20 March 2013 22:46:20 sergey_s wrote:
> Здравствуйте
> Друзья, растолкуйте пожалуйста такой кусок конфига, найден тут, в рассылке
> 
> map $http_user_agent $bot_ua {
> ~bot bot;
> }
> 
> limit_req_zone $bot_ua zone=bot:10m rate=1r/s;
> limit_req zone=bot burst=120;
> 
> я понимаю как работает map, но хоть убей не понимаю как она связана тут с
> limit_req_zone  ( дока тоже мне как-то свет не проливает на это )
> что в  $http_user_agent на начальном этапе понятно, в $bot_ua - пустая
> строка
> далее, при нахождении в $http_user_agent подстроки bot, $bot_ua,
> присваивается значение  bot
> правильно ?
> а далее, меня сбивает с толку
> 
> limit_req_zone $bot_ua... ..
> 
> предположим нужная подстрока найдена, тогда переменная $bot_ua = bot
> в итоге получается:
> 
> limit_req_zone bot zone=bot:10m rate=1r/s;
> limit_req zone=bot burst=120;
> 
> правильно ?
> тогда как это вообще работает ?
> 
> расскажите если не трудно
> 
> и вопрос связанный со всем этим
> нужно резать канал конкретным юзерагентам из определенного списка, ( либо
> через инклуд списка, либо просто перечисленыым в директиве map )
> 
> Заранее благодарен

"Резать канал" это скорее к limit_rate:
http://nginx.org/r/limit_rate/ru

--
Валентин Бартенев
http://nginx.org/en/donation.html


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