您的位置:首页 > 运维架构 > Nginx

不记录nginx_log 的 图片 js 日志

2013-04-16 13:32 323 查看
今天想给两个网站分别启用网站访问日志,相当于给不同虚拟主机添加日志的意思吧,其实一般情况下,如果nginx.conf配置文件里的http里面没设置access_logoff;默认是会把所有访问日志输出到/var/log/nginx目录下面,现在要把不同网站的日志区分开来,所以添加了access_logoff。

按照之前很多网上的配置方法是在各个虚拟主机配置文件的server段里添加日志格式和日志输出路径,如下

viewsource

print?

1
log_formataccess
'$remote_addr-$remote_user[$time_local]"$request"'
2
'$status$body_bytes_sent"$http_referer"'
3
'"$http_user_agent"$http_x_forwarded_for'
;
4
access_log/home/wwwlogs/ddhow.com.
log
access;
5
error_log/home/wwwlogs/ddhow.com-error.
log
;
上面大概的意思是定义一个名为access的日志格式,然后调用他来输出到/home/wwwlogs/ddhow.com.log这个位置。error_log这一段是错误日志,用的是默认的格式,没有定义。这样配置完每个虚拟主机文件后,重启,你可能会出现“nginx:[warn]the"log_format"directivemaybeusedonlyon"http"levelin/etc/nginx/conf.d/xxx.com.conf:24"类似这样的警告。开始我还以为是我格式写错了,后事上网查了下,据说是新版本的nginx,日志格式log_format只能定义在http里,那这样一来,感觉也挺方便了,把这段定义加到nginx.conf配置文件的http里面

viewsource

print?

1
log_formataccess
'$remote_addr-$remote_user[$time_local]"$request"'
'$status$body_bytes_sent"$http_referer"'
'"$http_user_agent"$http_x_forwarded_for'
;
然后每个虚拟主机配置文件server里调用这个access的格式就行了

viewsource

print?

1
access_log/home/wwwlogs/ddhow.com.
log
access;
其实如果你不定义一个格式,直接开启日志,像这样

viewsource

print?

1
access_log/home/wwwlogs/ddhow.com.
log
;
没有后面的access,它一样会默认输出日志,而且格式和上面定义的是一样的,只不过上面定义的还可以进一步的修改成自己需要的格式。

另外,nginx默认会记录图片,css,swf,js等的访问日志,有时候我们不需要这些信息,不记录图片等,可以把它去掉以节省空间,同样是在虚拟主机的配置文件server里面添加

viewsource

print?

01
location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
02
{
03
expires7d;
04
access_logoff;
05
}
06
07
location~.*\.(js|css)?$
08
{
09
expires1d;
10
access_logoff;
11
}
上面这两段除了关闭了图片等访问日志,还设置了缓存,就是对这些gif|jpg|jpeg|png|bmp|swf等后缀的文件,设置一个缓存时间过期时间,图片等设置了7天,js和css设置了1天,然后加上了access_logoff;关闭他们的日志记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图片 日志 js