Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
борьба с ботами средствами ng	inx
 
- To: nginx-ru@xxxxxxxxx
 
- Subject: борьба с ботами средствами ng	inx
 
- From: Roman Hlynovskiy <roman.hlynovskiy@xxxxxxxxx>
 
- Date: Mon, 16 Mar 2009 19:07:31 +0600
 
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;        d=gmail.com; s=gamma;        h=domainkey-signature:mime-version:received:date:message-id:subject         :from:to:content-type:content-transfer-encoding;        bh=m2l733LIvlQDpKllrRYaKhi5eo3HaIexgR+pPEhkHpk=;        b=pPsj+3CW9pQLR136qkIeRiT7pafJ2cz8Wq7sLZ6Wx+qiYfOgsfI+849tcHbcfqOp5g         9tYDBYUodIb4dOcn9uRFelQdYKUn0zT0pzOduBqGf4IBn576AhCyAKmX7bNKRjUwVDJG         Hai61VFNu7xUMPVa24prM4fGFAv0ZHFQqNYJI=
 
- Domainkey-signature: a=rsa-sha1; c=nofws;        d=gmail.com; s=gamma;        h=mime-version:date:message-id:subject:from:to:content-type         :content-transfer-encoding;        b=Etd8AThz2fL2Pt/KnnIYcVQXxHSsLuXNy7wCC5JIhmCvvGeYbc6LJ1h28/cHPGmaZR         K0hmDMX306s4tXZ3/xe2Bsmi02C43Owzsc9HxWlW4WatsdOyJOQTmq/cb2BfwDiQ8q1/         G7w573P7Y1j0fGek8kIu1UymJ5wa0gThC0QiE=
 
 
 
добрый день,
а у кого какой опыт есть борьбы с поисковыми ботами средствами 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
 
 |