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