limit_req zone + if в nginx

D
На сайте с 28.06.2008
Offline
1114
#11

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

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

Andreyka
На сайте с 19.02.2005
Offline
822
#12
Dram:
Леня, неверю!!! Ну ведь простое условие

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

Делайте map для $server_protocol. В чем проблема то?

Не стоит плодить сущности без необходимости
D
На сайте с 28.06.2008
Offline
1114
#13

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

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

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;
D
На сайте с 28.06.2008
Offline
1114
#14

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

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#15
Dram:
Да, код работает, Андрейска спасибо за пример!

Ну показывай значит сюда это чудо :)

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

В 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. Что это за код не понял

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#17

499, если я правильно помню, это nginx ещё не успел ответить, а клиент оборвал соединение. Вроде пинга.

R
На сайте с 14.02.2010
Offline
77
#18
Dram:
r0mik, я конечно не спец, но в вашем примере помоему не рабочий код. Где условие, фильтрующие траф по протоколу HTTP/1.0 ?

в моем примере ответ на вопрос о совмещении проверки (IF) и директивы limit_req

по условию делаете переход в именованный локейшн, где уже можно тулить что угодно - хоть лимиты, хоть еще что...

D
На сайте с 28.06.2008
Offline
1114
#19

Решил я дальше поэксперементировать с 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

Andreyka
На сайте с 19.02.2005
Offline
822
#20

У nginx есть debug log, запустите и посмотрите почему не проходит.

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