У одного из клиентов сайт частенько сайт начал «лежать», изучение логов показало множественные запросы (более 10) с одного и того-же IP адреса, которые и давали нагрузку на сайт.
Фронтендом у клиента стоял nginx — поэтому заблокировать подобную активность не составило никакого труда.
В этом мне помогли директивы limit_zone и limit_req.
Собственно, первое — в секцию httpd добавляем запись, ограничивающую активность до 2х запросов в секунду
limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
В секцию обработки динамики собственно активируем нашу запись (зону созданную в httpd)
limit_req zone=one burst=3;
Вуаля, от «лоховских» ботов атакующих с одного и того-же IP мы защищены!
Кому интересно поподробнее — запрос «limit_req_zone» в помощь 🙂
P.S.
Чтоб случайно не «резануть» ботов, рекомендую добавить в robots.txt паузу в запросах от ботов в 1 секунду
Crawl-delay: 1
4 комментария на «“NGINX — защита от DDOS с одного IP. Параметры limit_zone и limit_req.”»
Таким образом какой-то новичёк просто тренируеться или ктото реально хочет навредить?
А что делать если ботов больше?
как же монструозные офисы сидящие за одним ip прокси?
А есть более элегантный способ сделать это?