- 设置日志格式
在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;
时间: 2024-10-11 03:58:15