rate_limit_headers

Директива rate_limit_headers позволяет включать заголовки ограничения скорости в HTTP-ответы.

Синтаксисrate_limit_headers on | off;
По умолчаниюoff
Контекстhttp, server, location
Аргументыflag

Описание

Директива rate_limit_headers, при установке в 'on', позволяет NGINX отправлять в ответах клиентам определённые HTTP-заголовки, связанные с ограничением скорости. Эти заголовки информируют клиентов о параметрах ограничения, действующих в настоящий момент, включая максимальное количество разрешённых запросов, количество оставшихся запросов в текущем периоде, время до сброса лимита и рекомендуемое время ожидания перед повторной отправкой запросов в случае достижения лимитов. Заголовки называются 'X-RateLimit-Limit', 'X-RateLimit-Remaining', 'X-RateLimit-Reset' и 'Retry-After', и они обеспечивают прозрачную передачу информации о состоянии ограничений скорости для каждого запроса, обрабатываемого сервером.

Использование этой директивы особенно полезно в сценариях работы с API, где клиентам требуется понятная обратная связь о потреблении и установленных сервисом ограничениях. Когда клиент достигает своего лимита, сервер может ответить кодом состояния 429 Too Many Requests вместе с соответствующими заголовками, позволяя клиентам корректировать свою стратегию отправки запросов. Директива гибкая: её можно применять в контекстах http, server или location, что позволяет тонко настраивать, когда заголовки должны включаться в зависимости от требований по ограничению скорости приложения.

Пример конфига

location /quota {
    rate_limit $limit_key requests=15 period=1m burst=20;
    rate_limit_quantity 0;
    rate_limit_pass redis;
    rate_limit_headers on;
}

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

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

← Ко всем директивам