$bytes_sent

$bytes_sent 变量包含响应请求时发送给客户端的总字节数。 — NGINX Core (HTTP)

$bytes_sent NGINX Core (HTTP)

说明

$bytes_sent 变量在 NGINX 中跟踪在响应过程中传输给客户端的总字节数。该变量在请求处理阶段计算,并在所有发生日志记录的上下文中可用。它不仅反映原始响应主体,还包括任何额外发送的字节,例如 HTTP headers。该变量的值在 NGINX 开始向客户端传递响应时确定,并在整个传输过程中持续累积,直到响应完全发送完成。 通常,$bytes_sent 会根据所传输内容的类型而有很大差异;例如,静态文件将以字节为单位报告确切的文件大小,而由脚本生成的动态内容则不那么可预测。此外, 和 可能会由于 content length、headers 和 compression 等差异而影响所报告的大小。总体而言,开发人员和系统管理员主要将此变量用于分析带宽使用情况、计算传输统计,以及调整服务器性能以更高效地响应客户端请求。

配置示例

log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent';
access_log /var/log/nginx/access.log main;

子系统

http

可缓存

上下文

http, server, location, if, log

$bytes_sent 的值是累积的,仅提供对正在处理的特定请求在该时刻已发送的总字节数。

在小响应的情况下,或响应被缓存时,该值可能无法反映预期的带宽指标。

对于使用分块传输编码的响应,$bytes_sent 在响应发送过程中可能无法等同于精确的内容大小测量。