$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⚠
该变量仅在被代理请求的上下文中有意义,如果在该上下文之外访问,可能为空或为0。
⚠
当上游服务器发送空主体时,不要期望非零值;在这种情况下它将被设为0。
⚠
如果在条件处理时使用`$proxy_internal_body_length`,请确保在请求主体被处理之后再访问它。