如何记录 Squid 发出的有效传出 HTTP 请求以及适配后的标头?

如何记录 Squid 发出的有效传出 HTTP 请求以及适配后的标头?

我使用 Squid 修改客户端发送的一些 HTTP 标头。出于测试目的,我想完全删除“User-Agent”标头。

这是我的配置:

request_header_access User-Agent deny all
header_replace User-Agent Timmy
logformat mylogformat %>a [%{%H:%M}tl] "%rm %ru HTTP/%rv" %>Hs "Accept:%{Accept}>ha User-Agent:%{User-Agent}>ha" {%Ss:%Sh}

我使用语法 '>ha' 来记录“适应和重定向后的 HTTP 请求标头”,正如这里所述http://www.squid-cache.org/Versions/v3/3.1/cfgman/logformat.html

不幸的是,根据我的日志文件 access.log,标题没有被修改:

x.x.x.x [19:18] "GET http://example.org/favicon.ico HTTP/1.1" 404 "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" {TCP_MISS:DIRECT}` 

但是,当通过代理向我的 Nginx 服务器发出请求时,Nginx 可以有效地正确记录此标头:

[06/Mar/2012:19:18:07 +0100] "GET /sites/all/modules/colorbox/styles/default/images/controls.png HTTP/1.1" 200 2104 "http://example.org/sites/default/files/css/css_zpYGaC6A9wUNMpW3IPg55mz-mMAjvhuo-SZTcX-lqFQ.css" "Timmy"

在 squid 日志文件中记录正确修改的 HTTP 标头、重写的 URL 等的正确语法是什么?

我的 squid 版本是 2.7.STABLE9,它在 Debian SQueeze 64 位上运行。

感谢您的帮助

答案1

Squid 文档中的“适应”是指 ICAP 和 eCAP 适应,它不是 Squid-2 的一部分。

*_header_access 和 header_replace 进行的标头修改是直接在旧版 Squid 发送的有线格式 mime 标头上进行的。当前的 Squid-3 的做法不同,但我不确定新方法是否会对日志结果产生更好的影响。

相关内容