борьба с ботами средствами nginx

AleXXX V. NovikoFF alexxx at alexxx.ru
Mon Mar 16 18:06:57 MSK 2009


Hi!

Вы бы клиентов обучили Crawl-Delay в robots.txt

> 2009/3/16 Roman Hlynovskiy <roman.hlynovskiy at gmail.com>
> 
> > добрый день,
> >
> > а у кого какой опыт есть борьбы с поисковыми ботами средствами nginx?
> >
> > сегодня столкнулись с интересной проблемой - дурной клиент то-ли купил
> > сервис по seo-оптимизации, то-ли сам где-то научился, но его ресурс
> > обступили вкруговую поисковые боты.
> > одновременно 10-15 разных поисковых ботов начали активно индексировать
> > ресурс. все-бы ничего, но ресурс поднят на базе одного очень дурного
> > CMS разработчики которого видимо не в курсе что существуют понятия
> > индексов в БД.
> > в итоге получился небольшой DOS. сервер выдержал, но 'осадок' остался,
> > в виде очень нехороших iowait'ов.
> >
> > хотел-бы узнать кто-как решает подобные наплывы ботов у себя?
> > закрывать полностью ip-адреса ботов тоже не вариант, т.к. речь идет о
> > шаред хостинге.
> >
> > соответственно у меня возникло 2 различные идеи воплощения этой задачи;
> >
> > 1) разрешить только одному боту в одну единицу времени получать свой
> > честный 200, всем остальным - 503
> > 2) разрешить не более одного коннекта с одного ip-адреса при условии
> > что user_agent соответствует некому набору бот-шаблонов.
> >
> > попытался реализовать второй вариант через limit_conn следующим образом:
> >
> > http {
> >    limit_zone   bots  $binary_remote_addr  16m;
> >
> >   . . .
> >
> >   server {
> >
> >    if ($http_user_agent ~* "StackRambler|Yandex") {
> >    limit_conn bots 1;
> >   }
> >
> >
> >  }
> >
> > }
> >
> > на практике получил облом, т.к. limit_conn не может быть внутри if-а.
> > какие варианты тут могуть быть?
> >
> > реализовывал-ли кто-нибудь что-нибудь подобное первому варианту?
> > у меня вообще не приходят мысли как может выглядеть подобная конфигурация.
> >
> >
> > --
> > ...WBR, Roman Hlynovskiy
> >

-- 
Цитируйте предыдущую переписку, пожалуйста.
AleXXX V. NovikoFF <alexxx at alexxx.ru>
WWW: http://alexxx.ru/






More information about the nginx-ru mailing list