Что такое Ratelimit — ограничение скорости запросов | Глоссарий FREEHOSTING

Ratelimit

Rate Limiting
Ratelimit — Ratelimit — механизм ограничения частоты запросов к серверу или ресурсу за заданный период, предотвращающий перегрузку и злоупотребления. Используется для защиты от DoS-атак и стабильной работы сервисов.

Определение простыми словами

Ratelimit (ограничение скорости) — это технология, которая позволяет контролировать, сколько запросов или операций может выполнить пользователь или система за определённый промежуток времени. Основная задача — предотвратить чрезмерную нагрузку на серверы или API, а также защитить сервисы от злоупотреблений и атак, например, DoS или brute force.

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

Сравнение

Метод Описание Преимущества Ограничения
Fixed Window Ограничение числа запросов в фиксированном временном окне (например, 100 запросов в минуту) Прост в реализации Может быть неравномерная нагрузка в конце окна
Sliding Log Хранит список временных меток запросов и проверяет их за последние N секунд Более равномерное распределение запросов Требует больше памяти
Token Bucket Позволяет накопление и расходование токенов, что даёт гибкость в ограничении Поддерживает кратковременные всплески нагрузки Сложнее в реализации
Leaky Bucket Формирует равномерный поток запросов, очередь с постоянной скоростью Плавное ограничение нагрузки Менее гибкий при пиковых нагрузках

Кейсы использования

  • Защита API от превышения лимитов пользователями и ботами.
  • Предотвращение DoS-атак и перегрузки веб-сервера.
  • Ограничение количества повторных попыток аутентификации для защиты от подбора паролей.
  • Регулирование пропускной способности при работе с облачными сервисами и микросервисами.
  • Контроль ресурсов в многопользовательских приложениях и сервисах.

Негативный пример: Без правильной настройки ratelimit можно случайно заблокировать легитимного пользователя или снизить качество обслуживания при пиковых нагрузках.

Технические детали

Реализация ratelimit может производиться как на уровне веб-сервера, так и внутри приложений. Например, в nginx используется модуль limit_req_zone для ограничения запросов по IP-адресу или другим идентификаторам. Пример конфигурации:

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

    server {
        location /api/ {
            limit_req zone=one burst=5 nodelay;
        }
    }
}

Такие настройки контролируют не более 10 запросов в секунду с одним IP и позволяют кратковременные всплески до 15 запросов (burst=5).

Подробнее о защите от DDoS, nginx и firewall в нашем глоссарии.

Частые вопросы

Зачем нужен ratelimit?

Ratelimit предотвращает перегрузку сервера и защищает от атак, ограничивая количество запросов за заданное время.

Где обычно применяется ratelimit?

В API, веб-серверах и сетевых устройствах для контроля доступа и предотвращения злоупотреблений.

Как отличается ratelimit от firewall?

Firewall блокирует или разрешает трафик на основе правил, ratelimit ограничивает частоту запросов для управления нагрузкой.