keepalive_timeout

Директива keepalive_timeout задаёт таймаут для keep-alive соединений с upstream servers. — NGINX HTTP Core

keepalive_timeout
upstream
Синтаксисkeepalive_timeout timeout;
По умолчаниюnone
Контекстupstream
МодульNGINX HTTP Core
Аргументы1

Описание

Директива keepalive_timeout в NGINX необходима для управления постоянными соединениями между сервером NGINX и upstream servers (например, серверами приложений). Настроив эту директиву, администраторы могут указать, как долго неактивное соединение должно оставаться открытым перед его закрытием. Это помогает оптимизировать использование ресурсов сервера и может повысить производительность приложения, снижая накладные расходы на установку новых TCP‑соединений для каждого запроса. Директива принимает один аргумент, который указывает длительность таймаута keep-alive в секундах. Если соединение остаётся неактивным дольше этого времени, оно будет закрыто, что позволит серверу освободить ресурсы. Это особенно полезно в высоконагруженных средах, где эффективное управление keep-alive соединениями может привести к существенным улучшениям производительности. На практике установка слишком низкого значения этого таймаута может привести к увеличению накладных расходов, так как клиентам придётся часто восстанавливать соединения. Напротив, слишком большое значение может привести к исчерпанию ресурсов, если слишком много неактивных соединений будет поддерживаться. Рекомендуется подобрать сбалансированное значение на основе особенностей вашего приложения и характера трафика.

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

upstream backend {
    keepalive_timeout 65;
}

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

Не применяется ко всем конфигурациям upstream; проверьте совместимость при использовании конкретных модулей.