защита от DoS-атак с помощю модуля http_limit_req
Gena Makhomed
gmm на csdoc.com
Вс Янв 24 06:25:17 MSK 2010
Здравствуйте, 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