$proxy_internal_body_length
$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` в условной обработке, убедитесь, что к нему обращаются после обработки тела запроса.