Alexey Kovyrin пишет:
Почему отпала? Сначала можно проверить на бот/небот и только если не
бот, то проверять язык и отвечать 403 - такая логика тоже может быть
реализована достаточно просто.

2009/10/6 Станислав <server_inc@list.ru>:
  
SomeServer пишет:

Igor Sysoev пишет:

On Sun, Oct 04, 2009 at 02:19:22PM +0400, Alex Hudich wrote:



Есть ли возможность в nginx проверить наличие или отсутствие определенных
заголовков (ну и проверить их значение если нужно) в запросе клиента и
перенаправить этот запрос в зависимости от результатов проверки.



Поясню, сейчас проходит ддос атака на один из сайтов и в запросах не указан
Accept-Language заголовок. Хочу чтобы сайт работал хотя бы частично и
поэтому запросы без этого заголовка хочу выкинуть, а с ним можно будет
процессить, как обычно.


   server {

      if ($http_accept_language = "") {
           return 403;
      }




кстати, столкнулся с подобной проблемой недавно... 10 человек ддосили сайт,
и php-fpm грузил машину...
вопросик по сабжу... а как поисковые боты? Если взять яндекс и гугл... они
посылают в хедерах язык?

Отвечу сам себе на вопрос... Может, кому, будет интересно...
Как я и говорил, у меня приблизительная такая же ситуация...
Где-то 10 человек ддосят мой небольшой ресурс...
Из-за того, что ВПС довольно хорошо ограничена в ресурсах, php-fpm начинает
запинаться... а сам nginx справляется со всем вообще без какого либо
усердия... идея с заголовком меня заинтересовала, и я проверил заголовки у
этих ддосеров... заголовок языка отсутствовал...
К сожалению, эти АйПи забанить я не могу, т.к. это судя по всему нат, но то,
что это ддос атака, видно по логам очень хорошо...
В общем надо было этих чудиков как-то отсекать, и идея с заголовком подошла
бы...но ...

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) ::
66.249.71.122
спасибо гууглу... ихний бот не отдает хедер языка :(

Среди других поисковиков, порадовал Яндекс
Yandex/1.01.001 (compatible; Win16; I) :: 77.88.22.224
ru, uk;q=0.8, be;q=0.8, en;q=0.7, *;q=0.01
Вторая, строчка это то, что нам нужно...

Спасибо тебе яяххуу (хотя я им никогда и не пользовался xD)
Mozilla/5.0 (compatible; Yahoo! Slurp/3.0;
http://help.yahoo.com/help/us/ysearch/slurp) :: 72.30.161.243
en-us,en;q=0.5

правда, я обнаружил другой какой-то сервис яху, который тоже не отдает хедер
языка
Wget/1.10.2 (Red Hat modified) :: 72.30.13.42
Я даже подумал сначала, что это кто-то из посетителей, пока АйПи не
проверил...
poca02.video.search.sk1.yahoo.com

К сайту прикручена реклама бегуна... словил ихнего бота...
Begun Robot Crawler :: 91.192.148.231
который, тоже, не захотел делиться хедерами языка :(


Вот так и отпала эта отличная идея :(

    



  
Дык. а сколько этих ботов вообще? Я привел пример только тех, кого поймал за день...
А все время собирать статистику, и руками добавлять новичков, даже и не знаю...
Думаю, будет проще воспользоваться модулем ngx_http_limit_req