$proxy_internal_body_length

$proxy_internal_body_length возвращает длину тела запроса, который был внутренне получен от проксируемого сервера. — NGINX Core (HTTP)

$proxy_internal_body_length NGINX Core (HTTP)

Описание

Переменная `$proxy_internal_body_length` в NGINX используется в контексте проксирования между серверами, в частности когда NGINX выступает в роли обратного прокси. Эта переменная отслеживает размер тела запроса, полученного от вышестоящего сервера. Значение этой переменной устанавливается после того, как NGINX обработает запрос, пришедший от вышестоящего сервера, обычно в момент пересылки запроса или получения ответа. Эта переменная особенно полезна в конфигурациях, где требуется отслеживать или изменять размер содержимого тела. Например, если вы реализуете фильтрацию содержимого, логирование или условную обработку на основе размера тела, `$proxy_internal_body_length` обеспечивает быстрый и точный способ получить длину входных данных тела. Типичные значения этой переменной будут варьироваться в зависимости от сценария запроса и ответа, но в целом она отражает количество байт, присутствующих в теле запроса. В данном сценарии проксирования, когда NGINX обрабатывает запрос, он вычисляет длину тела, полученную из проксированного содержимого, и присваивает её этой переменной перед выполнением дальнейших операций или директив, где размер может иметь значение.

Пример конфига

location /proxy {
    proxy_pass http://backend;
    access_log /var/log/nginx/proxy.log "$proxy_internal_body_length";
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location, if

Эта переменная имеет значение только в контексте проксированного запроса и может быть пустой или равной нулю, если к ней обратиться вне этого контекста.

Не рассчитывайте на ненулевое значение, когда вышестоящий сервер отправляет пустое тело; в таких случаях оно будет установлено в ноль.

Если вы используете `$proxy_internal_body_length` в условной обработке, убедитесь, что к нему обращаются после обработки тела запроса.