以讹传讹的技术文档 about nginx log

2009/04/04 12:33 上午  |  分类:it

网上其实大部分的技术文档都是你炒我我炒你,互相抄袭,犯错扎堆,就算发现了也很难从google、baidu的错误数据中把正确的答案挣扎出来。

只要你用搜索引擎搜nginx、日志分析、awstat这几个关键词,就会搜到几乎是同一篇的文章,洋洋洒洒几千字把用awstat分析nginx日志的方法描述下来,不少新用nginx的人可能就这样掉下了一个坑。

这坑是如此这般的~~~~

nginx.conf有一段定义日志格式的,上面写的是:
log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

出来的日志会是这样:
58.35.169.100 - - [31/Jan/2009:23:59:24 +0800] GET /enews/ HTTP/1.1 "302" 18298 "http://www.xxx.com/yyy/111" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; MAXTHON 2.0)" "-"

而事实上,正确的应该是这样:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

出来的日志才会是正常的apache格式
58.35.169.100 - - [31/Jan/2009:23:59:24 +0800] “GET /enews/ HTTP/1.1” 302 18298 "http://www.xxx.com/yyy/111" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.2; MAXTHON 2.0)" "-"

好了,为此要对千万行日志批量处理,tmd!!!就为了一对站错位置的双引号,希望日后用nginx的人都栽到这个坑里面去!

对了,我发这篇博文会被人搜索到么?我是不是要seo一下。