Источник ответа
Определяем, кто вернул 429: CDN, WAF, веб-сервер, приложение, API-шлюз или внешний сервис.
Too Many Requests
Определяем, кто и где превышает лимит запросов: браузер, бот, cron-задача, мобильное приложение, интеграция или общий трафик. Исправляем причину и сохраняем защиту от перегрузки.
Ограничение частоты
RFC 6585 связывает 429 с превышением числа запросов за определённое время. Правило может считать их по ресурсу, IP, учётной записи, cookie или токену. Поэтому сначала устанавливаем точку ограничения и идентификатор клиента.
Определяем, кто вернул 429: CDN, WAF, веб-сервер, приложение, API-шлюз или внешний сервис.
Проверяем окно времени, порог, burst, ключ учёта и различия для авторизованных, анонимных и служебных запросов.
Ищем цикл, повтор при каждой перерисовке, параллельные cron-задачи, отсутствие кэша и агрессивные повторные попытки.
Разделяем обычных посетителей, поисковых роботов, мониторинг, сканирование и подозрительный поток по журналам.
Проверяем понятное сообщение и Retry-After, если система действительно знает допустимый момент повторной попытки.
Настраиваем очередь, кэш и увеличение паузы между повторами, затем проверяем сценарий в безопасных пределах.
Результат
Известно, какой клиент и какое правило создавали 429.
Повторы, циклы и дубли не нагружают сервис без необходимости.
Полезный трафик проходит, а опасные всплески ограничиваются.
Порядок действий
Повышать лимит до измерений рискованно: это может перенести перегрузку на приложение или базу. Сначала выясняем источник и только затем меняем клиент или правило.
Фиксируем URL, пользователя, IP, токен, время и число обращений до ошибки.
Находим правило, счётчик и общий объём запросов в том же временном окне.
Исправляем цикл, объединяем запросы, добавляем кэш, очередь или корректную паузу.
Корректируем подтверждённое правило и проверяем полезный и защитный сценарии.
Ограничение
Без ограничения один неисправный клиент или бот способен занять все ресурсы. Безопаснее устранить дубли, разделить классы трафика и выбрать измеряемый предел.
Лимиты внешнего сервиса нельзя изменить со стороны сайта: в таком случае адаптируем очередь и частоту обращений к его правилам.
Вопросы
Клиент отправил слишком много запросов за заданный промежуток времени и попал под ограничение частоты.
Обычно нет. Сначала определяем источник всплеска и корректность правила, затем исправляем клиент или границы лимита.
Заголовок может сообщать, сколько ждать до повторной попытки. Клиенту также нужна пауза между следующими повторами.
429 связан с частотой запросов, а 403 — с отказом в доступе. Диагностируются эти коды по разным правилам.
Первый шаг
Пришлите URL, время, заголовки ответа и сценарий перед блокировкой. Определим точку ограничения и безопасный следующий шаг.