rate_limit_headers
Директива rate_limit_headers позволяет включать заголовки ограничения скорости в HTTP-ответы.
Описание
Директива 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;
}Убедитесь, что логика ограничения скорости правильно настроена, чтобы избежать отправки вводящих в заблуждение заголовков после того, как пользователь превысит свой лимит.
Наличие заголовков может побудить клиентов злоупотреблять ограничениями скорости, отправляя на сервер множество запросов чуть ниже порога лимита.