You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache日志中获取响应头Content-Length字段的数值

问题原因

Apache默认访问日志中记录的响应大小字段为%b,该字段统计的是压缩前的原始响应体大小,而你在浏览器抓包看到的Content-Length是开启gzip压缩后的实际传输大小。由于不同客户端支持的压缩规则不同(部分老旧客户端不支持gzip会返回未压缩内容),因此日志记录的数值会随客户端变化,和响应头数值不一致。

解决步骤

  • 定位Apache日志配置文件
    Ubuntu/Debian发行版默认路径为/etc/apache2/apache2.conf或/etc/apache2/conf-available/other-vhosts-access-log.conf;CentOS/RHEL发行版默认路径为/etc/httpd/conf/httpd.conf。
  • 修改LogFormat配置
    将默认日志格式中代表响应大小的%b参数,替换为%{Content-Length}o,该参数会直接读取响应头的Content-Length值写入日志。
    示例修改:
    原combined日志格式配置:
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    
    修改后:
    LogFormat "%h %l %u %t \"%r\" %>s %{Content-Length}o \"%{Referer}i\" \"%{User-Agent}i\"" combined
    
  • 生效配置
    先执行配置校验命令,避免语法错误导致服务异常:
    Debian/Ubuntu:apache2ctl configtest
    CentOS/RHEL:httpd -t
    校验返回Syntax OK后,重启Apache服务生效:
    Debian/Ubuntu:systemctl restart apache2
    CentOS/RHEL:systemctl restart httpd

注意事项

如果你的站点配置了独立虚拟主机,且虚拟主机内单独指定了CustomLog日志格式,需要同步修改虚拟主机内对应的格式参数。

内容的提问来源于stack exchange,提问作者2WFR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:06:03