影响access.log的配置指令有哪些

81次阅读
没有评论

共计 2459 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章给大家分享的是有关影响 access.log 的配置指令有哪些的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

影响 access.log 的 10 个配置指令

1 log_icp_queries

该指令默认激活,导致 squid 记录所有的 ICP 查询。假如运行了一个繁忙的父 cache,这点可能让

access.log 文件变得巨大。为了节省磁盘空间,可禁止该指令:

log_icp_queries off

2 emulate_httpd_log

access.log 文件有 2 种格式:普通格式和原始格式。普通格式就如同大部分 HTTP 服务器(如 Apache)

的日志格式一样。它包含的信息少于 Squid 的原始格式。然而,假如运行 Squid 在代理人模式下(见

15 章),你可能想要普通日志文件格式。普通格式或许也对你现有的日志文件分析工具有用。使用该

指令来激活普通格式:

emulate_httpd_log on

3 log_mime_hdrs

使用 log_mime_hdrs 让 squid 记录 HTTP 请求和响应的头部:

log_mime_headers on

在激活时,squid 追加请求和响应头部到 access.log。这会在每行增加 2 个域。每个域都以方括号引用

起来,便于分析。某些字符会被编码来保证日志文件可读。Table 13- 2 显示了这些编码方案。

Table 13-2. Character encoding rules for HTTP headers in access.log

Character

Encoding

Newline

\n

Carriage return

\r

Backslash

\\

[

%5b

]

%5d

%

%25

ASCII 0-31

%xx (hexadecimal value)

ASCII 127-255

%xx (hexadecimal value)

4 log_fqdn

Squid 默认把客户端 IP 地址放在 access.log 里。也可以记录可用的主机名,激活如下指令:

log_fqdn on

这点让 Squid 在接受到请求时,对客户端的地址发起反向 DNS 查询。假如在请求完成时查到了主机名,

Squid 就将它放在第 3 域。

5 ident_lookup_access

该访问规则列表决定 Squid 是否对客户端的 TCP 连接发起 RFC 1413 身份查询。默认情况下,Squid 不

会发布身份查询。为了激活这点,简单的增加一个或多个规则:

acl All src 0/0

ident_lookup_access allow All

假如在请求完成时查到了答案,Squid 将其放在第 8 域。假如同时使用了 HTTP 验证,从验证得到的用

户名会取代身份查询答案。

6 log_ip_on_direct

当 Squid 转发 cache 丢失到原始服务器时,它在第 9 域记录原始服务器的 IP 地址。可以禁止这个指令,

以便 squid 记录主机名:

log_ip_on_direct off

在此情形下,主机名来自于 URI。假如 URI 包含了 IP 地址,Squid 不会将其转换为主机名。

7 client_netmask

该指令存在主要是为了保护用户的隐私。不同于记录完整的 IP 地址,你也可以掩盖一些位。例如:

client_netmask 255.255.255.0

在此设置下,access.log 里的所有客户端 IP 地址的最后一个八位组是 0:

1066036246.918 35 163.11.255.0 TCP_IMS_HIT/304 266 GET http://..

8 strip_query_terms

该指令是另一个隐私保护功能。在记录请求前,Squid 删除了查询条件。假如日志文件不幸落入坏人之

手,他们不会找到任何用户名和密码。当该指令激活时,在问号 (?) 之后的所有字节被删除。例如,某

个 URI 如下:

http://auto.search.msn.com/response.asp?MT=www.kim o.com.yw srch=3 prov= utf8

会被记录为:

http://auto.search.msn.com/response.asp?

.9 uri_whitespace

早前我提到过出现在某些 URI 里的空格字符的问题。RFC 申明 URI 必须不包括空格字符,但在实际中情

况并非如此。uri_whitespace 指令指明 Squid 如何处理这种情况。允许的设置是:strip (default),

deny, allow, encode, 和 chop。在这些设置里,strip,encode 和 chop 保证 URI 域不包含任何空格

字符(空格字符会给 access.log 增加多余的域)。

allow 设置允许请求不加修改的通过 Squid。它很可能会给重定向器和日志文件解析器带来麻烦。与之

相反的是 deny 设置,它导致 Squid 拒绝这种请求。用户会接受到错误消息,但请求仍带着空格字符被

记录到 access.log。

假如设置为 encode,Squid 将空格字符按 RFC 1738 规范来编码。这点其实用户代理应该先做到。

chop 设置导致 Squid 把第一个空格字符后的 URI 都截断。

默认设置是 strip,它让 Squid 从 URI 里移除空格字符。这确保日志文件解析器和重定向器工作正常,但

可能会破坏某些事情,例如不正确编码的搜索引擎查询。

10 buffered_logs

默认情况下,Squid 禁止写 cache.log 文件的 buffer,这允许你运行 tail -f 命令实时的观察日志文件变

化。假如你认为这点导致不必要的性能开销,就可以禁用 buffer:

buffered_logs off

然而,除非以完整 debug 模式运行 Squid,这点可能无关紧要。注意该选项仅仅影响 cache.log。其他

的日志文件总使用非缓冲的写方式。

很抱歉,因为您在网易相册发布了违规信息,账号被屏蔽。被屏蔽期间他人无法访问您的相册。

感谢各位的阅读!关于“影响 access.log 的配置指令有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2459字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)