На главную

DevOps и серверы

Лимит запросов

Лимит запросов по алгоритму корзины токенов: сколько пройдёт в первую секунду и за окно, сколько получит 429, как быстро наполняется запас — и готовые строки limit_req для nginx.

Лимит

Сколько можно разово сверх скорости

Нагрузка

Что получится

Пропустит

620

Откажет (429)

80

В первую секунду

30

В минуту стабильно

600

Интервал между запросами

100 мс

Запас наполнится за

2 с

Без nodelay nginx не отказывает в запасе, а придерживает запросы и выпускает их со скоростью лимита — клиент ждёт дольше, но ошибок меньше.

nginx

limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

server {
    location /api/ {
        limit_req zone=api burst=20 nodelay;
        limit_req_status 429;
    }
}