$sent_http_transfer_encoding
$sent_http_transfer_encoding содержит значение заголовка 'Transfer-Encoding', отправляемого клиенту. — NGINX Core (HTTP)
Описание
$sent_http_transfer_encoding переменная в NGINX содержит значение заголовка 'Transfer-Encoding', отправленного в HTTP-ответе клиенту. Эта переменная особенно полезна при HTTP-ответах, которые используют chunked transfer encoding. Для успешного присвоения этой переменной конфигурация NGINX должна указывать метод transfer encoding, что обычно происходит, когда используется механизм генерации динамического содержимого (например, PHP или an upstream server). Когда NGINX сам формирует ответ, значение этой переменной по умолчанию может быть пустой строкой, если оно явно не задано. Эта переменная может принимать несколько значений, чаще всего `chunked`, что означает, что ответ будет отправляться серией частей, а не одним целым сообщением. Это особенно полезно для больших ответов, которые можно передавать потоково небольшими частями, или когда общий размер ответа заранее неизвестен. Если сервер не устанавливает transfer encoding, переменная не будет содержать значения, что отражает отсутствие использования transfer encoding.
Пример конфига
location /api {
proxy_pass http://backend;
proxy_set_header Accept-Encoding '';
}
location /stream {
proxy_pass http://stream_backend;
add_header Transfer-Encoding chunked;
}Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifУбедитесь, что бэкенд-сервис поддерживает и корректно реализует chunked transfer encoding, чтобы избежать непредвиденного поведения.
Использование $sent_http_transfer_encoding вне соответствующих контекстов может привести к непредсказуемым или пустым результатам. Оно обычно используется совместно с настройками прокси.