默认情况下,Squid 记录所有访问信息,包括“成功”和“失败”。我对只记录“失败”感兴趣。换句话说,我想做一些事情,比如只记录 Squid DENIED 结果代码,或者,不记录成功的 HTTP 事务。不管我如何定义“成功”和“失败”,我都需要能够更具体地定义 Squid 将写入日志文件的访问信息类型。有人知道怎么做这个吗?
默认情况下,Squid 记录所有访问信息,包括“成功”和“失败”。我对只记录“失败”感兴趣。换句话说,我想做一些事情,比如只记录 Squid DENIED 结果代码,或者,不记录成功的 HTTP 事务。不管我如何定义“成功”和“失败”,我都需要能够更具体地定义 Squid 将写入日志文件的访问信息类型。有人知道怎么做这个吗?
您可以使用ACL实现此功能,尽管有一些技巧。
主要技巧是确保您不会意外检查二进制连接的
http_status
代码。Squid 永远不会看到二进制连接的状态代码,并且会在cache.log
二进制连接中抛出警告,如果你把它搞砸了。这是一个示例配置,它将写入所有 http 成功和重定向以及完成打开套接字的所有二进制连接(除此之外我们没有成功/失败可见性)
success.log
,以及所有失败的 http 失败代码和二进制连接打开一个套接字到failure.log
.此配置的问题在于它禁用了默认日志文件,并且不会记录与这两个 ACL 之一不匹配的任何内容。现在,我非常有信心我已经很好地编写了我的 ACL,并且我已经考虑了所有的可能性,但这仍然会让我感到紧张,所以你可能想要添加另一个日志文件来捕捉任何碰巧错过的东西两个 ACL
或者您可以定义
success
并将失败设置为!success