Too Many Requests

Диагностика и исправление ошибки 429 на сайте

Определяем, кто и где превышает лимит запросов: браузер, бот, cron-задача, мобильное приложение, интеграция или общий трафик. Исправляем причину и сохраняем защиту от перегрузки.

Ограничение частоты

Кто создаёт
лишние запросы

RFC 6585 связывает 429 с превышением числа запросов за определённое время. Правило может считать их по ресурсу, IP, учётной записи, cookie или токену. Поэтому сначала устанавливаем точку ограничения и идентификатор клиента.

01

Источник ответа

Определяем, кто вернул 429: CDN, WAF, веб-сервер, приложение, API-шлюз или внешний сервис.

02

Правило лимита

Проверяем окно времени, порог, burst, ключ учёта и различия для авторизованных, анонимных и служебных запросов.

03

Клиент и интеграция

Ищем цикл, повтор при каждой перерисовке, параллельные cron-задачи, отсутствие кэша и агрессивные повторные попытки.

04

Реальный трафик

Разделяем обычных посетителей, поисковых роботов, мониторинг, сканирование и подозрительный поток по журналам.

05

Ответ 429

Проверяем понятное сообщение и Retry-After, если система действительно знает допустимый момент повторной попытки.

06

Повторные запросы

Настраиваем очередь, кэш и увеличение паузы между повторами, затем проверяем сценарий в безопасных пределах.

Результат

Лимит защищает, а не мешает

Понятен источник

Известно, какой клиент и какое правило создавали 429.

Снижен лишний поток

Повторы, циклы и дубли не нагружают сервис без необходимости.

Сохранена защита

Полезный трафик проходит, а опасные всплески ограничиваются.

Порядок действий

Исправляем причину, не выключая защиту

Повышать лимит до измерений рискованно: это может перенести перегрузку на приложение или базу. Сначала выясняем источник и только затем меняем клиент или правило.

01

Воспроизводим

Фиксируем URL, пользователя, IP, токен, время и число обращений до ошибки.

02

Читаем журналы

Находим правило, счётчик и общий объём запросов в том же временном окне.

03

Убираем лишнее

Исправляем цикл, объединяем запросы, добавляем кэш, очередь или корректную паузу.

04

Настраиваем границы

Корректируем подтверждённое правило и проверяем полезный и защитный сценарии.

Ограничение

Отключить rate limiting — плохой первый шаг

Без ограничения один неисправный клиент или бот способен занять все ресурсы. Безопаснее устранить дубли, разделить классы трафика и выбрать измеряемый предел.

Для диагностики подготовьте

  • URL или API-метод с ошибкой;
  • время, IP или аккаунт пользователя;
  • тело ответа и заголовки, включая Retry-After;
  • недавно запущенные боты, cron и интеграции;
  • доступ к журналам CDN, сервера и приложения.

Лимиты внешнего сервиса нельзя изменить со стороны сайта: в таком случае адаптируем очередь и частоту обращений к его правилам.

Вопросы

Перед исправлением

Что означает 429 Too Many Requests?

Клиент отправил слишком много запросов за заданный промежуток времени и попал под ограничение частоты.

Нужно отключить ограничение?

Обычно нет. Сначала определяем источник всплеска и корректность правила, затем исправляем клиент или границы лимита.

Что означает Retry-After?

Заголовок может сообщать, сколько ждать до повторной попытки. Клиенту также нужна пауза между следующими повторами.

Чем 429 отличается от 403?

429 связан с частотой запросов, а 403 — с отказом в доступе. Диагностируются эти коды по разным правилам.

Первый шаг

Покажите ошибку 429

Пришлите URL, время, заголовки ответа и сценарий перед блокировкой. Определим точку ограничения и безопасный следующий шаг.