Назад | Перейти на главную страницу

nginx: динамически ограничивать запросы на основе пути

У нас есть служба, которая динамически обслуживает созданные пользователями ресурсы. Таким образом, пользователь может загрузить файл и поделиться им, используя URL-адрес, например /path/to/asset/unique_id. В настоящее время мы используем limit_conn модуль для защиты нашей системы путем блокировки IP-адресов, которые наводняют нас запросами.

Но мы также хотим ограничить запросы на основе пути запроса. Так что если мы получим всплеск трафика на GET /path/to/asset/unique_id, мы начинаем ограничивать запросы по этому пути, но остальная часть нашего сервиса продолжает нормально обслуживать ресурсы.

Прямо сейчас мы модифицируем конфигурацию nginx, чтобы отклонять запросы с помощью директивы «location», как только мы видим огромный всплеск для определенного пути. Но мы хотим, чтобы наш сервис был проактивным и автоматически ограничивал количество запросов на путь, как и limit_conn работает для IP-адресов.

Кто-нибудь знает, как это сделать? Является ли это возможным?