Как задать ограничение для определенного клиента в nginx?
Всем привет! Организован webdav сервис, через python wscgi, в качестве проксирования используется nginx.
Столкнулся с проблемой, что когда клиенты используют для подключения Disk0 от mail.ru, сервер просто "ложится". Создается куча куча куча процессов, как я понял по логам, клиент попросту сканирует информацию. Информации достаточно много, и подобные подключения попросту сервис "ложат".
На данный момент, проблему решил кардинально, путём:
if ($http_user_agent ~* CloudDiskO*) {
return 403;
}
Но теперь, собственно, вопрос. Возможно ли, через ту же директиву if ($http_user_agent ~* CloudDiskO*), безболезненно ограничить возможное количество подключений?
Алексей Тен, та да, но к директиве if ($http_user_agent ~* CloudDiskO*) это не применяется.
root@localhost:~# nginx -t
nginx: [emerg] "limit_req_zone" directive is not allowed here in /etc/nginx/sites-enabled/localhost.conf:89
nginx: configuration file /etc/nginx/nginx.conf test failed
root@localhost:~#
Алексей Тен, стоит. происходит всё ровно так же, с той разницей, что медленней чем до того как я поставил это ограничение. и по итогу, подключения нет, кстати.