【问题标题】:Understanding Apache's access log了解 Apache 的访问日志
【发布时间】:2012-03-03 07:56:13
【问题描述】:

我的访问日志中这一行中的每一件事是什么意思?

127.0.0.1 - - [05/Feb/2012:17:11:55 +0000] "GET / HTTP/1.1" 200 140 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 ( KHTML,如 Gecko) Chrome/18.0.1025.5 Safari/535.19"

【问题讨论】:

    标签: apache access-log


    【解决方案1】:

    您似乎在使用combined log format

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" 组合

    • %h 是远程主机(即客户端IP)
    • %l 是 identd 确定的用户身份(不常用,不可靠)
    • %u是HTTP认证确定的用户名
    • %t 是收到请求的时间。
    • %r 是来自客户端的请求行。 ("GET / HTTP/1.0")
    • %>s是服务器发给客户端的状态码(200、404等)
    • %b 是对客户端的响应大小(以字节为单位)
    • Referer 是 HTTP 请求的 Referer header(包含发起此请求的页面的 URL)(如果存在),否则为 "-"
    • User-agent 是浏览器标识字符串。

    可以在here 找到完整的(?)格式化程序列表。文档的同一部分还列出了其他常见的日志格式;日志看起来不太像这个的读者可能会发现他们的 Apache 配置使用的模式列在那里。

    【讨论】:

    • 我想知道最后一个数字( 19 )在用户代理之后是什么。
    • @ivanceras 535.19 是使用的 webkit 版本,所以它是用户代理字符串的一部分(它也放在包含用户代理的引号内)
    • 我在用户代理之后有 4 个附加字段,如下所示: ... "Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0" 369 74500 - 567 什么他们表示吗?
    【解决方案2】:

    什么是 “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.5 Safari/535.19”是指?

    这是浏览器识别字符串 User-Agent 的值。

    因此,大多数 Web 浏览器使用 User-Agent 字符串值作为 如下:

    Mozilla/[版本]([系统和浏览器信息])[平台] ([平台详细信息])[扩展]。例如,iPad 上的 Safari 有 使用了以下内容:

    Mozilla/5.0(iPad;U;CPU OS 3_2_1,如 Mac OS X;en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405 组件 该字符串的内容如下:

    Mozilla/5.0:以前用于表示与 Mozilla 渲染引擎。 (iPad;U;CPU OS 3_2_1,如 Mac OS X; en-us):运行浏览器的系统的详细信息。 AppleWebKit/531.21.10:浏览器使用的平台。 (KHTML,如 Gecko):浏览器平台详细信息。移动/7B405:这是由 浏览器以指示可直接使用的特定增强功能 在浏览器中或通过第三方。这方面的一个例子是 Microsoft Live Meeting,它注册了一个扩展,以便 Live 会议服务知道软件是否已经安装, 意味着它可以为加入会议提供简化的体验。

    此值将用于识别最终用户正在使用的浏览器。

    Refer

    【讨论】:

    • 在我的负载平衡环境中,它有 4 个服务节点隐藏在 apache 负载平衡器服务器后面。最近我遇到了不可用的问题。调试时,我发现负载均衡器上的 Access 日志为 504 状态。看起来像这样。 {IP 地址} - - [日期] "POST url http/1.1" 504 247 "-" "-" 现在我怀疑我的 4 个应用程序服务器节点之一比其他节点更频繁地超时。但是这些日志没有提供请求被转发到哪个服务器并导致超时的线索。如何记录请求转发到的节点的 ip。
    • 我将推荐以下选项 a) 启用并查看负载平衡器日志 b) 检查每个虚拟机的内存利用率、CPU 和 IO 并查看它们是否都相同。 c) 计算给定日期每个虚拟机的请求数。它们应该差不多。如果不是,负载均衡器可能会发现服务器没有响应 ping,这就是不发送请求的原因。
    【解决方案3】:

    我也不明白 200 140 部分后面的“-”是什么意思 日志

    该值对应于 Joachim 所描述的引用者。但是,如果您看到破折号,则表示开始时没有引用者值(例如,用户直接前往特定目的地,例如他/她在浏览器中键入 URL)

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 2018-01-14
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      相关资源
      最近更新 更多