Dram

Рейтинг
1115
Регистрация
28.06.2008

Вы имеете в виду limit_req_status ? Так она ж вроде только сообщает нгихс какую ошибку выводить на прерывание запроса. Как мне это может подойти?

Можно ли в мап совместить ошибку и юзерагент? Хочу в отдельный лог собирать потенциально хороших ботов получивших 503 ошибку

по типу

map $error_page:$http_user_agent $good_useragent {
default 0;
503:~*YandexAccessibilityBot 1;
503~*YandexDirect 1;

То что не знаю как прописать выделил жирным

---------- Добавлено 26.01.2017 в 15:55 ----------

Наверное нужно сначала объявить как-то error_page 503 $error_page; но что дальшеделать не врублюсь

А лимиты на подлючения как они обходят? Со скорость 7 запросов в мин. вы будите парсить мой сайт пару мес.

Но в целом я с вами согласен - захотят спарсить, купят прокси.

Если будут получать ошибку, начнут разбираться, выявят где спотыкаются и добавят это условие. Нужно будет - будут и картинки со стилями загружать....

Я не спорю что спарсить все что угодно. Моя защита - это тормоз автоботов :)))

У меня тоже сам серв делает много запросов, я его добавил в белый список и все ок.


#ФОРМИРУЕМ БЕЛЫЙ СПИСОК IP

geo $whitelist {
default 0;
# ip server
155.551.155.155 1;

...................

Вот мой рабочий конфиг (белый лист работает) - там у меня нгихс + пхп фм.

У вас там еще и апач да? Вот тут описана ваша ошибка

limiting requests, excess: 200.200 by zone "one"

https://habrahabr.ru/company/netangels/blog/149302/

burst=2000 nodelay

Это одномоментный/не лимитируемый всплеск. Как бы лично в моей голове не вяжется понятие "лимит" и такие всплески :)))) Не каждый хороший сервер такое переварит :)

---------- Добавлено 26.01.2017 в 09:11 ----------

При превышении запрос завершается с ошибкой 444

Неверно - ошибка будет 503

Что это за треш? :)))))) Вы понимаете значение этих цифр?

rate=1000r/m;
burst=2000

Вот мое решение /ru/forum/comment/14885499

Andreyka:
С куками - не вариант.
Делайте отдельный лог для css/js и анализируйте его вместе с полным.

Хорошаяя идея только немного так


map "$whitelist:$server_protocol" $log {
default 0;
"0:HTTP/1.1" 1;
}

+ в сервер

access_log /var/log/nginx/access.HTTP1.1.log combined if=$log;

Теперь у меня HTTP1.0 отрезан

На HTTP2.0 ботов пока мизерное кол-во (не знаю может и нет совсем)

и есть отдельный лог HTTP1.1 в котором нет запросов от поисковых ботов.

Вот в этом логе еще достаточно ботов, прошедних основной фильтр.

Теперь его по крону можно анализировать (на предмет айпи которые не запрашивают картинки) и заносить черный список (отдельный файл) который инклюдить сюда же в Nginx.

Тут есть нюанс - могут появляться новые подсети поисковых ботов (хороших), поэтому если у запросов юзерагенты - |YandexMobileBot|YandexAccessibilityBot|YandexDirect|YandexImages|Yahoo|Mediapartners-Google|YandexBot|Googlebot|msnbot|bingbot|Mail\.RU нужно не банить сразу, а отправлять мыло админу чтобы посмотрел руками.

Сам такое не реализую ибо не кодер совершенно, надеюсь кто-то поможет...

G0gA:
У вас есть такое?

Вы бы сами на такое клиникнули? Все в чем сомнения - в бан.

---------- Добавлено 24.01.2017 в 22:08 ----------

Сегодня с обеда ни одного Якубовича и т.п. - подозрительно....

Всего: 6926