lingering_close
Директива `lingering_close` включает или отключает задержанное закрытие для HTTP-соединений в NGINX. — NGINX HTTP Core
Описание
Директива `lingering_close` в NGINX управляет поведением задержанного закрытия клиентских соединений. Когда она установлена в 'on', она позволяет соединениям оставаться открытыми в течение заданного периода после того, как клиент отправил запрос, давая возможность клиенту прочитать оставшиеся данные до полного закрытия соединения. Это особенно полезно при работе с медленными клиентами или теми, кто может не прочитать все данные своевременно, что позволяет предотвратить возможную потерю данных. Когда она установлена в 'off', NGINX закроет соединение сразу после отправки ответа, не ожидая клиента, что может повысить производительность сервера в условиях высокой нагрузки, но сопряжено с риском потери непрочитанных данных. Директива принимает один аргумент, который может быть 'on' или 'off'. В состоянии 'on' NGINX выполняет задержанное закрытие, позволяя соединению оставаться открытым. Если директива установлена в 'off', функция задержанного закрытия отключается, и соединения закрываются сразу. Эта директива может использоваться в различных контекстах, включая http, server и location, что делает её гибкой для разных приложений. При тонкой настройке производительности администраторы NGINX могут использовать эту директиву для оптимизации обработки данных с учётом конкретных сценариев использования и поведения клиентов.
Пример конфига
server {
listen 80;
server_name example.com;
lingering_close on;
}Установка lingering_close в 'on' может привести к исчерпанию ресурсов при слишком большом количестве медленных клиентов.
Отключение lingering_close может привести к потере данных, если клиенты не потребляют весь ответ.