Здравствуйте
Друзья, растолкуйте пожалуйста такой кусок конфига, найден тут, в рассылке
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 )
Заранее благодарен
Друзья, растолкуйте пожалуйста такой кусок конфига, найден тут, в рассылке
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 )
Заранее благодарен