## 查看nginx配置文件的日志格式
[root@aminglinux ~]# cd /usr/local/nginx/conf/vhosts/
[root@aminglinux vhosts]# vim ../nginx.conf
wyy 日志名字,可以自定义
$remote_addr 远程的ip
$http_x_forwarded 代理的ip
$time_local 时间
$host 域名
$request_uri 访问的地址
$status 状态码
## 使用指定的日志格式
[root@aminglinux vhosts]# vim test.conf
access_log /tmp/access.log wyy;
## 检查并重新加载
[root@aminglinux vhosts]# /usr/local/nginx/sbin/nginx -t
[root@aminglinux vhosts]# /usr/local/nginx/sbin/nginx -s reload
## 测试
[root@aminglinux vhosts]# curl -x127.0.0.1:80 www.test.com/sfsfsfsfs -I
HTTP/1.1 404 Not Found
Server: nginx/1.6.2
Date: Wed, 26 Oct 2016 14:38:28 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
## 查看生成的日志
[root@aminglinux vhosts]# ls /tmp/access.log
/tmp/access.log
[root@aminglinux vhosts]# cat /tmp/access.log
127.0.0.1 - [26/Oct/2016:22:38:28 +0800]www.test.com "/sfsfsfsfs" 404"-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
解释说明:
这说是我们刚刚用curl测试访问产生的日志,也可以用浏览器访问一下
访问页面,会看到好多日志,为什么会这么多?因为我们没有限制它去记录图片(png,gif等),就像apache的日志一样,可以去掉的,怎么去配置呢?
## 配置不记录指定类型日志
[root@aminglinux vhosts]# vim test.conf
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
}
## 检查并重新加载
[root@aminglinux vhosts]# /usr/local/nginx/sbin/nginx -t
[root@aminglinux vhosts]# /usr/local/nginx/sbin/nginx -s reload
## 为了便于测试,把之前的日志内容清空
[root@aminglinux vhosts]# >/tmp/access.log
[root@aminglinux vhosts]# cat /tmp/access.log
[root@aminglinux vhosts]#
## 去访问网页,然后再查看日志就不会看到图片了。但是还是会有好多包含static或cache路径的一些文 件,这些也不需要,也要去做一下配置
location ~ (static|cache)
{
access_log off;
}
注:location是有先后顺序的,如果匹配的第一个就不会再匹配第二个,所以一定要区分先后顺序,放在哪里合适。
思考 :这个日志配置好了后,可能会一直写一直/tmp/access.log里写,假如日志不去管它,终有一天会把你的硬盘写满,所以我们需要做一个日志的切割,每天去生成一个新的,然后把超过多少天的日志给删除,这个如何去做?(它不像apache有一个工具,nginx没有工具,需要我们自己去写脚本)