chunked_transfer_encoding
Директива 'chunked_transfer_encoding' включает или отключает передачу чанками для HTTP-ответов в NGINX. — NGINX HTTP Core
Описание
Когда директива chunked_transfer_encoding установлена в 'on', NGINX будет использовать передачу чанками для отправки ответов клиентам, вместо указания общего размера содержимого в HTTP-заголовках. Передача чанками особенно полезна для динамически генерируемого содержимого, когда общий размер содержимого неизвестен в начале ответа. Используя этот метод, NGINX может начинать отправку данных клиенту сразу после их появления, что может улучшить воспринимаемую производительность приложения и снизить задержку. Директива принимает флаговый аргумент, который может быть 'on' или 'off'. При значении 'on' NGINX включает передачу чанками, а 'off' её отключает. Положение этой директивы гибкое; она может использоваться в контекстах http, server или location, позволяя применять её глобально или в конкретном контексте в соответствии с потребностями. Как правило, включение передачи чанками более полезно для ответов, которые генерируются динамически, например создаваемых CGI-скриптами или при обратном проксировании к серверу приложений, когда окончательная длина содержимого заранее неизвестна.
Пример конфига
http {
server {
location / {
chunked_transfer_encoding on;
proxy_pass http://backend;
}
}
}Отключение chunked transfer encoding при использовании dynamic content может привести к увеличению задержки, поскольку NGINX будет вынужден узнать общий размер содержимого перед отправкой ответа.
Смешивание chunked responses с buffer settings может вызвать непредвиденное поведение; убедитесь, что buffer configurations совместимы с chunked encoding при их включении.