Re: Re[2]: борьба с ботами средствами nginx
Roman Hlynovskiy
roman.hlynovskiy at gmail.com
Mon Mar 16 19:12:30 MSK 2009
а сколько клиентов шаред хостинга можно этому научить? 90% наших
клиентов практически ничего не знают о веб-технологиях как таковых.
они ориентированы на задачу, которую должен выполнять их веб-сайт. и я
считаю что это правильно. вот я когда сажусь в машину я не терзаюсь
мыслями, о том как и с какой силой я должен нажимать те или иные
педали и крутить те или иные ручки, чтобы все это поехало. все уже
продумано за меня производителем.
16 марта 2009 г. 21:06 пользователь AleXXX V. NovikoFF
<alexxx at alexxx.ru> написал:
> 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/
>
>
>
--
...WBR, Roman Hlynovskiy
More information about the nginx-ru
mailing list