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

nginx的高级配置(3)——日志管理

2015-12-01 17:04 453 查看
设置日志格式

在nginx.conf配置文件里添加
log_format xy '$remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
此日志格式为IP不仅记录代理的IP还记录远程客户端的真实IP。然后在虚拟主机的配置文件里添加
access_log /tmp/access.log xy;
上述的xy是自己取得名字。

2.指定日志的不记录内容
刷新下nginx代理的页面,在cat /tmp/access后,发现会有许许多多的日志,特别是图片格式等内容特别多,而我们又不需要这种信息,这时就应该指定日志不去记录这些内容。

在虚拟主机的配置文件里添加localtion,
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,如
location ~ .*\.(js|css)$
{
expires      12h;
access_log off;
}
这样有关js|css的内容会在12小时后过期。
4.日志切割
首先创建一个shell脚本,我的脚本是这样的

#!/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里面修改错误日志级别
error_log /usr/local/nginx/logs/nginx_error.log debug;


本文出自 “echo xiayun” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: