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

nginx日志切割,日志格式,静态文件不记录日志,配置缓存

2015-06-01 18:34 881 查看
我是直接写的一个简单的shell实现的,内容如下:#! /bin/bashdatedir=`date +%Y%m%d`/bin/mkdir /home/logs/$datedir >/dev/null 2>&1/bin/mv /home/logs/*.log /home/logs/$datedir/bin/kill -HUP `cat /var/run/nginx.pid`这样执行以后,就会在/home/logs/$datedir目录下生成日志文件,你可以在/etc/crontab 里把执行这个shell的任务写上去,可以一小时执行一次,也可以每天执行一次,也可以一周执行一次,这个就看自己的需要了 找到删除日志文件的方法rm -f /home/logs/`date '+%Y%m%d' -d ' -10 day'`*.log这个也写到shell脚本里,然后每天执行一次,每天就回去/home/logs目录里找当前时间之前10天的文件,并删除 日志格式:log_format main '$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; log_format main1 '$proxy_add_x_forwarded_for - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"'; //此日志格式为,ip不仅记录代理的ip还记录远程客户端真实IP 错误日志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 日志切割(按小时)vim /usr/local/nginx/sbin/log.conf //写入以下内容rotate 48Nocompress/home/logs/access.log {Sharedscripts create 0644 www wwwPostrotate/bin/kill -USR1 `cat /usr/local/nginx/var/nginx.pid`LDATE=`date +%Y%m%d%H --date="-1 hour"` /bin/mv /home/logs/access.log.1 /home/logs/${LDATE}-access_logEndscript}运行: /usr/sbin/logrotate /usr/local/nginx/sbin/log.conf并且把这行命令加入到cron中按每小时一次去执行
静态文件不记录日志,配置缓存location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ expires 30d; access_log off;}location ~ .*\.(js|css)?${ expires 12h; access_log off;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  记录 request null 切割