Как я уже писал выше, более чем за год на 50-80.000 юзеров в день я дополнил этот список всего дважды.
Ну а сравнивать быстроту и простоту решений на nginx и php даже смысла нет, тем более что мои примеры бесплатны...
А есть третий вариант? :))) Они или кладут или че-то тырят с вашего сайта и лично я с этим мериться не намерен!
Кому интересно - вот топ 10 хитроботов, маскирующихся под ботов Гугла и Яндекса, но таковыми не являющимеся. (слева кол-во запросов за 4 дня)
А теперь цитрую ваш же сайт
Т.е вам собирать белые списки можно - а мне руки отрубать? :))))
Пользуюсь этим списком более года - траф только растет. Сайты добавлены в кабинеты вебмастеров гугла и яндекса и ниразу не было сообщений о проблемах сканирования.
У меня есть отдельные логи для ботов поисковиков - так самый посещаемый сайт сканируют чуть ли не каждую секунду и в этом логе только 200-е ответы.
У меня есть так же отдельный лог для "возможно бот поисковика" - где собираются запросы от подсетей НЕ посиковиков, но с юзерагентом поисковиков.
Их я пока иногда проверяю вручную, и за год нашел еще парочку реальных IP поисковых ботов и добавил в белый список.
А вскоре я автоматизирую этот процесс и вообще не буду туда лазить.
P.S. аа ну все понятно :))) увидел вашу подпись.... мешаю бизнесу да? :)))
Не вижу смысла засирать аптейблс.
Где я на 100% уверен что бот - отдаю 444 ошибку (просто разрываю соединение, nginx этого действа вообще не чувствует, это совершенно его не нагружает.
Например
или
Таким сразу
остальных торможу через limit_req_zone или отправляю на гугл капчу.
P.S. вот Оптимизайка предлагал еще одно оригинальное решение /ru/forum/958253
если в кратце - блокируются через апсет подсети всех крупных датацентров мира. Ведь 90% мусорного трафика идет как раз с разных серверов (не с домашних компов).
Я юзал его решение почти год - полет был нормальный рекомендую.
В вашей ситуации вообще очень просто отбиться.
Берете формируете белый список как я показывал выше, далее устанавливаете geoip и подключаете его, указывая страны из которых не хотите видеть трафик
И в секцию server { нужного хоста
Но повторюсь - у меня http2 и 90% трафика идет по нему, по HTTP/1.1 лезут в основном боты, поэтому мне удобно их отсеивать.
Очень жаль, поле для маневров сильно сужается.
Так как много из этих IP российские - геоайпи тут не поможет, можно попробовать посмотреть будут ли попадать эти запросы в лог без куков
Добавьте в секцию http {
далее в секцию server {
И смотрите этот лог. Если все ваши товарищи там - уже можно обрубать.
Лично у меня на 50.000 трафика в этот лог попали вчера 4000 IP, я их глазками посмотрел, пробил вручную несколько десятков - это боты на 99%
Но я их не обрубаю, а при первом же запросе отправляю на гугл капчу (мне мой кодер написал решение на PHP.
Так вот из этих 4000 капчу прошли 21 юзер.
Так же в этом логе практически нет запросов к статике - css, js, которые делают нормальные юзеры, что так же показательно.
2. Вариант - более мягкий.
Сделать 2 лога, 1-й из которых будет собирать все запросы, а второй только к статике. Далее парсим оба лога и тех кто не запрашивает статику - (при условии что они не из подсетей поисковиков) объявляем подозрительными и уже только для них придумываем еще проверку.
Вы знаете свой проект, знаете какая активность в какие разделы нормальна, а какая нет.
P.S. введение https +http2 позволяет строить конструкции с учетом протокола и это сразу же обрубает 95% ботов. Все они в подавляющем большинстве лезут по протоколу HTTP/1.1
1. У вас https + http2 ? вы не ответили
2. К этим php файлам нормальные юзеры обращаются или обращение к ним напрямую уже не нормально?
Тем что таких ботов от общего числа - 0,5%.
Но все равно - нужно видеть запросы, чтобы понять как их отбить.