只是想知道,有没有办法使用 squid 日志检查上传内容或与上传相关的任何数据?有任何插件或增强功能吗?还有其他可行的选择吗?感谢您的任何建议。谢谢。
答案1
文件上传只是 POST 请求,Squid 默认记录使用的请求方法:
Squid 的原生格式为:经过时间 远程主机代码/状态字节 方法 URL rfc931 peerstatus/peerhost 类型
因此,像这样的命令grep POST /var/log/squid/access.log
应该为您提供所有的 POST 请求,但这也将包括许多非文件上传的请求,例如:
1416604451.778 243 172.16.1.20 TCP_MISS/200 455 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604497.047 245 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604542.304 241 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604587.562 241 172.16.1.20 TCP_MISS/200 327 POST http://serverfault.com/posts/641455/editor-heartbeat/answer - HIER_DIRECT/198.252.206.16 application/json
1416604694.915 241 172.16.1.20 TCP_MISS/200 313 POST http://serverfault.com/posts/validate-body - HIER_DIRECT/198.252.206.16 application/json
您可以尝试按请求正文大小进行过滤以获取更好的日志,但如果不修改 Squid 的源代码就无法记录请求正文,因此您将很难获取实际上传的文件。
也许可以看看独立资本管理委员会并创建一个响应 REQMOD 的程序并在将请求返回给 Squid 之前记录请求正文?