Как правильно настроить NGINX, чтобы не заблокировать поисковых роботов?

PF
На сайте с 30.11.2016
Offline
83
1127
Здравствуйте!
Настраиваю Nginx чтобы избежать примитивных DDoS-атак, но при этом не хочу случайно заблокировать поисковых роботов. Сейчас настроено так:
http {
  limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
  # ...
  server {
      location / {
          limit_req zone=one burst=20 nodelay;
          # ...
      }
  }
}
При текущей конфигурации с 1 ip адреса может быть до 10 запросов в секунду с интвервалом в 100мс на каждый запрос. При этом, может быть единовременный "всплеск" до 20 одномоментных запросов, после чего каждый новый запрос так же будет обрабатываться с интервалом в 100мс.

Достаточно ли такой конфигурации, чтобы не забанить поисковых роботов Google и Яндекс?


LEOnidUKG
На сайте с 25.11.2006
Offline
1749
#1

У Яндекса в вебмастере стоит до 30 запросов в секунду максимум.

Не забывайте, что количество запросов распространяется и на статику тоже. Если у вас h2 то одновременное будет тянуться не только HTML, но и всякие картинки и CSS и т.д., а их может быть больше 10 шт и вы получите тормоза сайта.

Поэтому выставите пределах в 50-100 запросов в секунду.

Но и опять же... это ограничение на по IP. В основном ДДОС идёт с 1000 IP и эти лимиты не помогут. Поэтому эти лимиты больше защита от F5 или парсеров, но не более.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
PF
На сайте с 30.11.2016
Offline
83
#2
LEOnidUKG #:

У Яндекса в вебмастере стоит до 30 запросов в секунду максимум.

Не забывайте, что количество запросов распространяется и на статику тоже. Если у вас h2 то одновременное будет тянуться не только HTML, но и всякие картинки и CSS и т.д., а их может быть больше 10 шт и вы получите тормоза сайта.

Поэтому выставите пределах в 50-100 запросов в секунду.

Но и опять же... это ограничение на по IP. В основном ДДОС идёт с 1000 IP и эти лимиты не помогут. Поэтому эти лимиты больше защита от F5 или парсеров, но не более.

Благодарю за развёрнутый ответ. Какое значение для burst порекомендуете выставить?

LEOnidUKG
На сайте с 25.11.2006
Offline
1749
#3
PendalF89 #:

Благодарю за развёрнутый ответ. Какое значение для burst порекомендуете выставить?

Ну сделайте 50/100 для начала.

D
На сайте с 07.11.2000
Offline
219
#4
Лучше вообще уберите эту защиту.  Толковой защиты оно не дает, а проблемы может создать. 

Или ставьте только в критические секции location (тяжелые долгие скрипты). А из статики уберите вообще.
cloud-shield
На сайте с 25.01.2017
Offline
54
#5

Как правильно заметили люди выше - попытка самостоятельно настроить защиту от ддоса скорее всего приведет к "выстрелу в ногу" и негативным последствиям для посетителей/поисковых ботов сайта.

На рынке, в том числе российском, имеются сервисы ддос защиты с дешевыми или бесплатными начальными тарифами - рекомендую попробовать воспользоваться ими.  С большой вероятностью это решит основные проблемы без ложных срабатываний и негативного опыта для посетителей сайта. А в случае атак по сильнее/умнее - и переезжать с этих сервисов уже не надо будет - всегда есть выбор тарифов на вырост.  Бонусом получите бесплатные ssl, CDN, ускорение сайта и прочие вкусности готовых решений.

Например, можете посмотреть наш сервис защиты (в подписи).

Защита сайтов от DDoS атак - Cloud-Shield.ru ( https://cloud-shield.ru )
AfterWar
На сайте с 28.01.2013
Offline
172
#6

Правильно вам вверху написали - роботы будут попадать под раздачу.  К тому же варианты с ограничением запросов по времени не сработают (ненамного ослабят атаку) - у меня с некешированным сайтом примитивным php crawler`ом сайт валили при такой защите - просто много проксей набирали и долбили по карусели. Это если кто то loic скачал и решил Вам навредить со своего ip поможет а с множественных ip нет.  Смотрите в сторону cloudflare с ограничением по протоколу  (проверка всего трафа  http/1.0 и 1.1)  + разрешить Known Bots   (яндекс, гугл и прочее) - эффективое и простое решение

⭐⭐⭐ЛУЧШАЯ АЛЬТЕРНАТИВА ADSENSE (ПЛАТЯТ, И ДЛЯ RU ДЛЯ БУРЖ) ( https://clck.ru/KgyqY )
iccup
На сайте с 01.05.2016
Offline
195
#7
geo $limit {
default 1;
#google
66.249.64.0/19 0;
66.102.0.0/20 0;
64.68.80.0/21 0;
64.233.160.0/19 0;
72.14.192.0/18 0;
209.85.128.0/17 0;
216.239.32.0/19 0;
#yandex
77.88.0.0/18 0;
87.250.224.0/19 0;
93.158.128.0/18 0;
95.108.128.0/17 0;
213.180.192.0/19 0;
#bing
13.66.139.0/24 0;
40.77.169.0/24 0;
65.52.104.0/24 0;
65.52.108.0/22 0;
65.55.24.0/24 0;
65.55.52.0/24 0;
65.55.55.0/24 0;
65.55.213.0/24 0;
65.55.217.0/24 0;
131.253.24.0/22 0;
131.253.46.0/23 0;
40.77.167.0/24 0;
199.30.27.0/24 0;
157.55.13.0/24 0;
157.55.16.0/23 0;
157.55.18.0/24 0;
157.55.32.0/22 0;
157.55.36.0/24 0;
157.55.48.0/24 0;
157.55.109.0/24 0;
157.55.110.40/29 0;
157.55.110.48/28 0;
157.56.92.0/24 0;
157.56.93.0/24 0;
157.56.94.0/23 0;
157.56.229.0/24 0;
199.30.16.0/24 0;
207.46.12.0/23 0;
207.46.192.0/24 0;
207.46.195.0/24 0;
207.46.199.0/24 0;
207.46.204.0/24 0;
157.55.39.0/24 0;
}

map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}

limit_req_zone $limit_key zone=one:10m rate=3r/s;
limit_req_log_level error;
limit_req_status 429;

это в основной конфиг, а в конфиг для конкретного хоста

location /folder/ {
                limit_req zone=one burst=1 nodelay;
...
}

у меня так

kimsufi.com ( https://www.kimsufi.com ) очень дешевые и качественные дедики https://clck.ru/gvF9p - антибот, использую уже 3 года.
D
На сайте с 28.06.2008
Offline
1104
#8
Вот мое решение, работает до сих пор. Спустя годы проблем нет https://searchengines.guru/ru/forum/954988/page2#comment_14885499
Защита от ботов. NGINX limit_req + белый список яндекс на основе rDNS - Администрирование серверов - Сайтостроение - Форум об интернет-маркетинге - Страница 2
Защита от ботов. NGINX limit_req + белый список яндекс на основе rDNS - Администрирование серверов - Сайтостроение - Форум об интернет-маркетинге - Страница 2
  • 2022.03.25
  • searchengines.guru
Устал от ботов. Интересует некая помощь в организации чуда блокирующего назойливых ботов, может получится создать подобное общими силами...
PF
На сайте с 30.11.2016
Offline
83
#9
Dram #:
Вот мое решение, работает до сих пор. Спустя годы проблем нет https://searchengines.guru/ru/forum/954988/page2#comment_14885499

А если появятся новые подсети ботов Гугла или Яндекса? Их же тоже можно случайно заблокировать.

D
На сайте с 28.06.2008
Offline
1104
#10
PendalF89 #:

А если появятся новые подсети ботов Гугла или Яндекса? Их же тоже можно случайно заблокировать.

У меня есть отдельный лог для запросов с юзер агентом Поисковых систем и IP не из белого списка. Каждую ночь этот лог прогоняется обратным ДНС запросом на предмет проверки а может реально это новая подсеть поисковиков и если да, мне приходит уведомление. За два года пришло три или 4 таких уведомления и я проверив IP вручную обновил белый список.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий