【问题标题】:How can i log Squid Logs?如何记录 Squid 日志?
【发布时间】:2017-03-24 13:57:49
【问题描述】:

我是第一次使用 squid,实际上我是从 privoxy 转发到 squid 再到服务器。 当我点击请求而不是 Squid 日志时,我可以看到 privoxy 日志。 我已经检查了 access.log 但没有运气。 谁能帮我解决这个问题。

【问题讨论】:

    标签: http proxy squid


    【解决方案1】:

    除非您另外配置了 Squid,否则所有请求(无论成功与否)都将在完成后写入 access.log 文件。在请求成功的情况下,这几乎会立即发生,但不成功请求可能需要长达 30 秒的时间才会出现在日志中。在检查文件之前,您是否等待足够长的时间让这种情况发生?

    假设您在 Linux 上运行,也许您可​​以使用 wget 之类的工具通过代理发送一些请求,然后检查日志。这将确认日志记录确实有效。使用此语法:

    http_proxy=http://localhost:3128/ wget www.google.com --debug
    

    在命令开头添加“http_proxy=”告诉 wget 在 localhost 的 3128 端口上使用代理侦听。wget 向您展示了什么? Squid 是否向 access.log 文件写入任何内容?如果是这样,这似乎表明您的代理记录正常,但 privoxy 没有向它发送任何内容。

    您可以尝试的另一件事是在您希望 privoxy 将流量发送到 Squid 的 TCP 端口上运行数据包捕获。我不知道你如何配置 privoxy,但我假设顺序是这样的:

    客户端 > Privoxy > Squid > 服务器

    在这种情况下,假设 privoxy 通过 TCP 端口 3128 连接到 localhost 上的 Squid。您可以运行数据包捕获以查看 privoxy 是否甚至连接到 Squid,如下所示:

    tcpdump -i localhost port 3128 -vv
    

    或者,如果您看到正在传输的数据包但想知道其中的内容,那么出色的 tcpflow 就是您的朋友:

    tcpflow -c -i localhost port 3128
    

    如果您编辑问题以提供更多上下文,则可能会提供更好的答案。

    【讨论】:

      【解决方案2】:

      我添加了以下配置,现在可以看到日志了。

      access_log /var/log/squid/access.log squid
      access_log syslog:daemon.debug squid
      

      【讨论】:

        猜你喜欢
        • 2014-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-17
        相关资源
        最近更新 更多