У нас есть служба, которая динамически обслуживает созданные пользователями ресурсы. Таким образом, пользователь может загрузить файл и поделиться им, используя URL-адрес, например /path/to/asset/unique_id
. В настоящее время мы используем limit_conn
модуль для защиты нашей системы путем блокировки IP-адресов, которые наводняют нас запросами.
Но мы также хотим ограничить запросы на основе пути запроса. Так что если мы получим всплеск трафика на GET /path/to/asset/unique_id
, мы начинаем ограничивать запросы по этому пути, но остальная часть нашего сервиса продолжает нормально обслуживать ресурсы.
Прямо сейчас мы модифицируем конфигурацию nginx, чтобы отклонять запросы с помощью директивы «location», как только мы видим огромный всплеск для определенного пути. Но мы хотим, чтобы наш сервис был проактивным и автоматически ограничивал количество запросов на путь, как и limit_conn
работает для IP-адресов.
Кто-нибудь знает, как это сделать? Является ли это возможным?