(1)日志格式定义
[root ~]# vi /usr/local/nginx/conf/nginx.conf #打开nginx主配置文件#
找到
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
'$host "$request_uri" $status'
'"$http_referer" "$http_user_agent"';
combined_realip #日志格式名可自定义# '$remote_addr #访问地址# $http_x_forwarded_for #访问的代理IP#
[$time_local]'#访问时间# '$host#域名# "$request_uri" #请求的uri# $status#状态码# $http_referer #referer#
$http_user_agent #浏览器标识#
#定义访问日志路径及记录日志的格式
access_log /tmp/access.log wjh;
(2)错误日志 error_log 日志级别
error_log 级别分为 debug, info, notice, warn,error, crit 默认为 crit, 该级别在日志名后边定义格式如下:
error_log /your/path/error.log crit; #指定路径+日志级别#
crit 记录的日志最少,而 debug 记录的日志最多,调成warn基本上就可以,调成 error 级别时,错误日志记录的内容会更加丰富。
(3)某些类型的文件不记录日志
[root@wjh2 ~]# vi /usr/local/nginx/conf/vhosts/discuz.conf #打开虚拟主机配置文件#
#访问日志不记录某些类型的文件location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ #匹配这些格式#{access_log off; #访问日志不记录#}#访问日志不记录某些目录下类型的文件location ~ static #匹配static目录#{access_log off;}location ~ (static|cache) #匹配static和cache目录#{access_log off;}
(2)日志切割脚本
root@wjh-01 ~]# vim /usr/local/sbin/nginx_log_rotate.sh
#! /bin/bash
## 假设nginx的日志存放路径为/tmp/
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/"
nginx_pid="/usr/local/nginx/logs/nginx.pid"
cd $logdir
for log in `ls *.log`
do
mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`