Dram

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

Кстати код что я писал выше нерабочий.

у меня есть еще одна директива

limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
limit_req zone=one burst=3 nodelay;

Вот она и отшибала иногда ботов

а вот этот код

map $server_protocol $limit {
"HTTP/1.0" $binary_remote_addr;
default "";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;

Позволяет делать запросы чаще 1 раза в минуту с 1 айпи

Решил я дальше поэксперементировать с map, тестировать решил на бесполезном бинге

добавил еще один мап

map $server_protocol $limit {
"HTTP/1.0" $binary_remote_addr;
default "";
}

map "$server_protocol:$http_user_agent" $limit {
"HTTP/1.1:bingbot" $binary_remote_addr;
default "";
}

limit_req_zone $limit zone=bot:10m rate=1r/m;

то что добавил выделил жирным. Смотрю по логам бот бинга не тормозится. Где ошибка?

Задача не затормозить бинга (он тестовая жертва), а научиться добавлять несколько условий в мап, сейчас пробую совместить

$server_protocol и $http_user_agent

В http

map $server_protocol $limit {
"HTTP/1.0" $binary_remote_addr;
default "";
}
limit_req_zone $limit zone=bot:10m rate=1r/m;

в сервер

limit_req zone=bot burst=2;

Прошло 2 часа, просмотрел логи - отсеивает ботов.

Одно не понятно - не всегда отшибает их 503 ошибкой иногда 499. Что это за код не понял

Да, код работает, Андрейска спасибо за пример!

nikolaevets:
+ сегодня/сми/роза

Они все померли :))) тк что пофигу СМИ или роза, искать нужно по трешу

умер/умерла/погиб/погибла/скончался/скончалась

Проблема в том что я близко не кодер, и с трудом перевариваю примеры по ссылкам.

так правильно?

map $server_protocol $limit {
"HTTP/1.0" $binary_remote_addr;
default "";
}

limit_req_zone $limit zone=one:10m rate=30r/m;
limit_req zone=one burst=3;

Да, персонажи начали меняться, но лавочку с транслитом вроде закрыли.

Сейчас наибольее актуально искать так:

умер/умерла/погиб/погибла/скончался/скончалась

Будут ходить по http 1.1 если ботов настраивают специально под меня, но там я уверен больше половины нечести просто автоматические сканеры всего и вся.

Никто их не будет переделывать

Леня, неверю!!! Ну ведь простое условие

if ($server_protocol ~* "HTTP/1.0")

неужели никак нельзя прилипть к нему limit_req zone ?

Вот только сегодня с утра до 12 дня - 11587 запросов по HTTP/1.0 - сгруппировал все апи, пробил, сплошь парсеры и спамботы.

Было бы все же здорово затормозить эту нечисть.

Всего: 6924