Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
защита от DoS-атак с помощю модуля http_limit_req
- To: nginx-ru@xxxxxxxxx
- Subject: защита от DoS-атак с помощю модуля http_limit_req
- From: Gena Makhomed <gmm@xxxxxxxxx>
- Date: Sun, 24 Jan 2010 05:25:17 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1264303517; bh=s4qvhS2AkgNWxR2SgUCxYt6uZ4kU4qs3+HfZtsOav4M=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: Content-Type:Content-Transfer-Encoding; b=P1tmH2gRWFnS/I1enm6EQnpM IRTamrjVDtwXS4fuD1Xaz2VwsVMokZj6xswRmwN9nEeu+gc+pLjdySKf89U7UDpJgAm 40bTdLK93FYqOlmtbVAcsvxrV2z+hF0gNLuEhoCKv1SoyBwtaBtjm4L6tKi208+C2sS 7uSJjedRRTF18=
Здравствуйте, All!
небольшую DoS-атаку на сервер, порядка 5-10 запросов в секунду
ограничил таким простым способом:
http {
limit_req_zone $binary_remote_addr zone=backend:10m rate=1r/s;
limit_req_log_level notice;
server {
server_name virtual.server.under.the.impact.of.dos;
location / {
limit_req zone=backend burst=64 nodelay;
proxy_pass http://127.0.0.1/;
}
}
теперь вместо 5-10 запросов в секунду с одного IP
на backend уходит не более одного запроса в секунду.
вопрос: каким способом лучше всего будет ограничить
оставшийся раз в секунду запрос от бота к backend`у ?
очевидный метод - включить и настроить кеширование http,
- снимется нагрузка с backend`а, но останется паразитный
исх.трафик, который тратить тратить канал и ресурсы сервера.
блокировать этот конкретный ip в firewall`е -
нет смысла, бот приходит с укртелекомовского
ADSL пула, и может легко сменить свой IP.
PS в документации на сайте есть небольшая неточность,
директивы limit_req_log_level и limit_conn_log_level
есть не только в 0.8.18+ но и в 0.7.63+ с 26.10.2009
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|