了解Apache的访问日志


134

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

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

Answers:


237

您似乎正在使用组合日志格式

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标头(包含发起此请求的页面的URL)(如果存在),"-"否则存在。
  • 用户代理是浏览器标识字符串。

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


我想知道在用户代理之后的最后一个数字(19)是多少。
ivanceras

2
@ivanceras 535.19是所用的Webkit版本,因此它是用户代理字符串的一部分(并且也放置在包含用户代理的引号中)
Joachim Isaksson

4
我在用户代理后面有4个其他字段,如下所示:...“ Mozilla / 5.0(Windows NT 5.1; rv:16.0)Gecko / 20100101 Firefox / 16.0” 369 74500-567它们表示什么?
我的account_ram 2014年

9

在日志的200 140部分之后,我也不明白“-”的含义

该值对应于Joachim描述的引用者。但是,如果您看到破折号,则表示没有引荐来源值(例如,用户直接进入了特定的目的地,就像他/她在浏览器中输入了网址)


7

Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 535.19(KHTML,如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,例如Gecko)Mobile / 7B405此字符串的组件如下:

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

该值将用于识别最终用户正在使用哪种浏览器。

参考


在我的负载平衡环境中,它有4个服务节点隐藏在apache负载平衡器服务器后面。最近,我遇到了不可用的问题。调试时,我发现负载平衡器上的Access日志状态为504。看起来像这样 {IP地址}--[日期]“ POST url http / 1.1” 504247“-”“-”现在,我怀疑我的4个应用服务器节点之一比其他节点更频繁地给出超时。但是这些日志无法提供将请求转发到哪个服务器并导致超时的线索。如何记录将请求转发到的节点的IP。
教授

我将建议以下选项:a)启用并查看负载平衡器日志b)检查每个虚拟机的内存利用率,CPU和IO,看看它们是否都相同。c)计算给定日期每个虚拟机的请求数。他们应该是一样的。如果不是,那么Load Balancer可能会发现该服务器未响应ping,这就是为什么不发送请求的原因。
vsingh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.