Welcome! Log In Create A New Profile

Advanced

Re: map и limit req

Ruslan Ermilov
March 20, 2013 03:10PM
On Wed, Mar 20, 2013 at 02:46:20PM -0400, 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 или пустая строка) зависит
от запроса, и является ключом в зоне "bot". Пустые значения (см. доку)
в зоне не учитываются, другими словами, ограничиваться будут только
боты.

> предположим нужная подстрока найдена, тогда переменная $bot_ua = bot
> в итоге получается:
>
> limit_req_zone bot zone=bot:10m rate=1r/s;
> limit_req zone=bot burst=120;
>
> правильно ?
> тогда как это вообще работает ?
>
> расскажите если не трудно

Смысл в том, что там по синтаксису переменная, а они в nginx зависят
от запроса.

> и вопрос связанный со всем этим
> нужно резать канал конкретным юзерагентам из определенного списка, ( либо
> через инклуд списка, либо просто перечисленыым в директиве map )

Не услышал тут вопроса. Пример с User-Agent есть в документации к
модулю map: http://nginx.org/ru/docs/http/ngx_http_map_module.html
В зависимости от того, что нужно конкретно, значениям User-Agent из
нужного списка в map могут соответствовать либо одно и то же непустое
значение (например, "1", как выше для ботов), либо разные (если их
ограничивать нужно по отдельности). Переменная задаёт ключ, по которому
ведётся учёт и производится ограничение. Запросы с одинаковым значением
ключа учитываются вместе. Я советую ещё раз вдумчиво прочитать
документацию на map и limit_{req,conn} на http://nginx.org.

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Re: map и limit req

Ruslan Ermilov March 20, 2013 03:10PM

Re: map и limit req

sergey_s March 20, 2013 04:06PM

Re: map и limit req

sergey_s March 20, 2013 06:38PM

Re: map и limit req

Homutov Vladimir March 21, 2013 12:34AM

Re: map и limit req

Ruslan Ermilov March 21, 2013 02:26AM

Re: map и limit req

sergey_s March 21, 2013 04:02AM

Re: map и limit req

Валентин Бартенев March 21, 2013 09:26AM

Re: map и limit req

sergey_s March 21, 2013 09:37AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 316
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready