-
设置日志格式
在nginx.conf配置文件里添加
1
2
3
|
log_format xy
'$remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"'
;
|
此日志格式为IP不仅记录代理的IP还记录远程客户端的真实IP。然后在虚拟主机的配置文件里添加
1
|
access_log
/tmp/access
.log xy;
|
上述的xy是自己取得名字。
2.指定日志的不记录内容
刷新下nginx代理的页面,在cat /tmp/access后,发现会有许许多多的日志,特别是图片格式等内容特别多,而我们又不需要这种信息,这时就应该指定日志不去记录这些内容。
在虚拟主机的配置文件里添加localtion,
1
2
3
4
5
6
7
|
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
access_log off; }
location ~ .*\.(js|css)$
{
access_log off; }
这时候我们去查询access.log,发现gif|jpg|jpeg|png|bmp|swf|js|css的内容已经不见了
|
3.配置静态文件过期时间
一般浏览器都有缓存功能,而我们可以配置静态文件过期时间,在之前的location里添加expires,如
1
2
3
4
5
|
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
|
这样有关js|css的内容会在12小时后过期。
4.日志切割
首先创建一个shell脚本,我的脚本是这样的
1
2
3
4
5
6
7
|
#!/bin/bash
d=`
date
-d
"-1 day"
+%F`
[ -d
/tmp/nginx_log
] ||
mkdir
/tmp/nginx_log
mv
/tmp/access
.log
/tmp/mginx_log/
$d.log
/etc/init
.d
/nginx
reload >
/dev/null
cd
/tmp/nginx_log/
gzip
-f $d.log
|
然后利用crontab制定任务计划,比如第二天的0点执行这个脚本。
5.错误日志级别
错误日志error_log日志级别
error_log 级别分为 debug, info, notice, warn, error, crit 默认为crit, 该级别在日志名后边定义格式如下:
error_log /your/path/error.log crit;
crit 记录的日志最少,而debug记录的日志最多。如果你的nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,那么就可以调一下错误日志的级别>,当你调成error级别时,错误日志记录的内容会更加丰富,可以在nginx.conf里面修改错误日志级别
1
|
error_log
/usr/local/nginx/logs/nginx_error
.log debug;
|
本文转自YU文武貝 51CTO博客,原文链接:http://blog.51cto.com/linuxerxy/1718567
,如需转载请自行联系原作者