https://www.nginx.com/blog/mitigating-ddos-attacks-with-nginx-and-nginx-plus/
Если решать максимально по быстрому - я бы прикручивал fail2ban и блокировал на уровне iptables
А на основе чего туда кидать?
Ну например, первый же ответ с кодом 400 (mailformed request)
Как не печально - единственный разумный вариант - блочить фаерволом.
Я так понимаю, что что-то вроде такого, проверяем руками что за ip, если не яндексы/гуглы, то потом в блок? grep "400" /var/log/nginx/access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -n | tail -n 100 > /top100.txt
Да. Ну, я бы городил через отдельный лог. Завернуть через error_page 400 в отдельный location, там писать лог в формате "$remote_addr", и уже его проворачивать через sort | uniq и в ipset.
Обсуждают сегодня