在使用 Awstats 作为日志文件的分析软件的时候,同时网站服务器使用的又是 Nginx 的话,需要注意这两者的日志格式需要一致。否则就会无法正常的解析日志。
下面做一些记录,是本站使用的配置。
网站使用的是 Nginx Web 服务器,网站的 Log 日志格式,是设置在 /etc/nginx/nginx.conf 中,如下:
log_format main '$remote_addr [$time_local] "$request" $status $body_bytes_sent $http_referer "$http_user_agent"';
在 Awstats 的配置中,就需要设置同上面 Nginx 的设置一致的内容,但是因为写法不同需要注意,awstats/cgi-bin/awstats.seo.conf
LogFormat="%host %time1 %methodurl %code %bytesd %referer %uaquot"
从网站日志记录中选一条看看样子。
42.120.161.103 [11/Oct/2019:18:11:16 -0700] "GET /2007/02/11/guge-is-not-google.html HTTP/1.1" 200 10247 - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 YisouSpider/5.0 Safari/537.36"
对照着来看:
Nginx配置 Awstats配置 Log例子 解释
$remote_addr %host 42.120.161.103 远程访问网站的 IP 地址。
[$time_local] %time1 [11/Oct/2019:18:11:16 -0700] 显示包括时区信息在内的访问时间,记得加上了方括号,不用的话,会出现数据错误。
"$request" %methodurl "GET /2007/02/11/guge-is-not-google.html HTTP/1.1" 访问网站的URL地址,加上了双引号。
$status %code 200 服务器返回的状态码,200表示有返回内容。
$body_bytes_sent %bytesd 10247 服务器返回的内容的字节长度。
$http_referer %referer https://seo.g2soft.net/ 远程访问URL之前是从哪个页面链接过来的
"$http_user_agent" %uaquot "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 YisouSpider/5.0 Safari/537.36" 用户访问网站是用的哪种工具。