Web 服务器的 log 文件有几种?

通常 Web 服务器所谓的log文件,就是当浏览器载入一个页面时,会向服务器发出请求,服务器会做出适当的返回,而这些访问都会记录在 log 文件中。
log 文件是一个文本文件,下面是一个例子,各种不同的格式有不同的写法。
log_sample.png

下面来介绍四种常见的格式

Common Log Format (CLF),也称之为 NCSA Common Format

这是一个标准化的格式,是最为常见的格式,一开始的时候是由 NCSA 定义的。绝大部分的 log 分析软件都接受该格式的文件。

例子:
127.0.0.1 user-identifier frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

在Apache Web 服务器中的定义方式是这样的:

LogFormat "%h %l %u %t \"%r\" %>s %b" common

Combined Log Format

这是 CLF 格式的一个扩展形式,包括 referring URL 和 User Agent 字段。

在Apache Web 服务器的配置文件中可以这样来定义:

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

W3C Extended Logfile Format

一种可定制的Log格式,只收集用户所需的信息。

在Nginx服务器的配置文件中,我所用的格式是这样的:

nginx_log_format.png可以看到收集的信息有下面这些项目:

remote_addr : 用户的 IP 地址,或者说客户机的 IP 地址。

remote_user : 用户名,用户若使用基本认证的话会有这个。

time_local : 本地时间

request : 请求的内容,包括是 GET 还是 POST,还是 HEAD,路径,何种HTTP格式,是 HTTP/1.1,还是HTTP/1.0,再或者是 HTTP/2.0。

status : 返回的状态码,比如200,301,403等等。

body_bytes_sent : 返回的字节数,就是有多少数据返回到客户浏览器。

http_referer : referer的网址。

http_user_agent : 来访的浏览器或者蜘蛛的 agent 是如何定义的。

http_x_forwarded_for : 记录通过代理,或者CDN访问时的原始用户 IP 地址。


作者: David Yin
原载: SEO 网站优化推广
版权所有。转载时必须以链接形式注明作者和及本声明。