rate_limit_send_timeout

Директива `rate_limit_send_timeout` задаёт продолжительность таймаута для отправки ответов во время операций ограничения скорости.

Синтаксисrate_limit_send_timeout time;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива rate_limit_send_timeout является частью модуля ограничения частоты запросов с поддержкой Redis для NGINX. Эта директива устанавливает конкретный период таймаута, в течение которого сервер должен успешно отправить ответ, если запрос превысил разрешённый предел частоты запросов. Таймаут предназначен для предотвращения чрезмерных задержек, вызванных длительным завершением операций, которое может происходить при взаимодействии с внешними системами, такими как Redis, для проверок ограничения частоты. На практике, если ответ не может быть отправлен в пределах заданного периода, NGINX может прервать текущую операцию отправки, чтобы освободить ресурсы и потенциально более эффективно обработать последующие запросы.

Параметры этой директивы включают длительность, указанную в стандартных форматах времени (например, секунды, миллисекунды). Директива может применяться на нескольких уровнях конфигурации (http, server, location), что позволяет гибко задавать поведение таймаута, адаптируя его к конкретным контекстам или требованиям. Пользователям следует учитывать сетевые условия и отзывчивость их серверов Redis при выборе подходящего значения таймаута; чрезмерно агрессивные таймауты могут привести к преждевременным прерываниям, тогда как слишком высокие значения рискуют захватывать ресурсы сервера.

В целом, эта директива играет ключевую роль в поддержании баланса между производительностью и надёжностью при управлении ограниченными по скорости запросами с участием внешнего источника данных.

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

location /api {
    rate_limit $limit_key requests=10 period=1m;
    rate_limit_send_timeout 1s;
    rate_limit_pass redis;
}

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

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

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

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