lingering_timeout

Устанавливает период ожидания для отложенного закрытия подключений. — NGINX HTTP Core

lingering_timeout
httpserverlocation
Синтаксисlingering_timeout seconds;
По умолчаниюnone
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `lingering_timeout` в NGINX задаёт длительность (в секундах), в течение которой сервер будет ждать после того, как клиент закрыл соединение, прежде чем полностью закрыть сокет. Это особенно полезно в сценариях, когда сервер хочет позволить завершиться дополнительным операциям чтения или записи, не разрывая соединение немедленно. Когда соединение находится в состоянии ожидания, сервер будет держать сокет открытым в течение указанного времени, чтобы дать клиенту возможность отправить или получить оставшиеся данные. Если таймаут истечёт без какой-либо активности, соединение принудительно закрывается. Установка `lingering_timeout` полезна в условиях высокой нагрузки, где управление соединениями критично, так как это может помочь сократить количество внезапных разрывов соединений. Эта директива может применяться в разных контекстах: http, server и location, что позволяет гибко управлять обработкой соединений в разных разделах конфигурации NGINX. При указании таймаута важно помнить, что значение должно быть положительным целым числом, представляющим секунды. Слишком короткие значения могут привести к частым разрывам соединений, тогда как слишком длинные — бессмысленно занимать системные ресурсы.

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

http {
    lingering_timeout 10;
}
server {
    lingering_timeout 5;
}
location / {
    lingering_timeout 3;
}

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

Слишком высокие значения могут привести к исчерпанию ресурсов, поскольку открытые соединения остаются неактивными в течение длительного времени.