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

  1. 设置日志格式

在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” 博客,转载请与作者联系!

你可能感兴趣的:(nginx,日志)