keepalive_time
Директива keepalive_time задаёт время, в течение которого существующее соединение в upstream может оставаться неактивным до его закрытия. — NGINX HTTP Core
Описание
Директива keepalive_time указывает максимальную продолжительность, в течение которой простаивающее keep-alive соединение с upstream сервером должно поддерживаться перед закрытием. Это помогает оптимизировать использование ресурсов, предотвращая накопление неиспользуемых соединений и тем самым позволяя лучше управлять максимальным количеством соединений, доступных серверу. Когда указанный в keepalive_time период истечёт, соединение будет закрыто, что может помочь освободить ресурсы для новых запросов. Эта директива особенно полезна в сценариях с высокой нагрузкой и множеством краткоживущих соединений, обеспечивая эффективное повторное использование соединений без перегрузки ресурсов сервера. Используя директиву keepalive_time, администраторы могут балансировать нагрузку и поддерживать состояние соединений в соответствии с потребностями приложения. Важно учитывать влияние на производительность при определении значения этой директивы — слишком короткий тайм-аут может увеличить накладные расходы на установление соединений, тогда как слишком длинный тайм-аут может привести к недоиспользованию ресурсов. Директива принимает один аргумент, который задаёт длительность в секундах, на которую соединение будет поддерживаться в состоянии простоя.
Пример конфига
upstream backend {
keepalive_time 60;
}Установка очень малого значения keepalive_time может привести к увеличению задержки из-за частого открытия и закрытия соединений.
Если keepalive_time не настроен правильно, это может привести либо к исчерпанию ресурсов, либо к недоиспользованию в зависимости от рабочей нагрузки.
Убедитесь, что заданный timeout соответствует ожиданиям клиента по стабильности соединения.