chunked_transfer_encoding

Директива 'chunked_transfer_encoding' включает или отключает передачу чанками для HTTP-ответов в NGINX. — NGINX HTTP Core

chunked_transfer_encoding
httpserverlocation
Синтаксисchunked_transfer_encoding on | off;
По умолчаниюoff
Контекстhttp, server, location
МодульNGINX HTTP Core
Аргументыflag

Описание

Когда директива 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 при их включении.