Nginx访问日志
1. 进入配置文件
vim /usr/local/nginx/conf/nginx.conf //搜索log_format
更改以下配置
log_format aming '$remote_addr $http_x_forwarded_for [$time_local]'
如下图:
日志格式字段含义如下:
combined_realip为日志格式的名字,后面可以调用它。
2.到虚拟主机配置文件中指定访问日志的路径。
vim /usr/local/nginx/conf/vhost/test.com.conf
增加如下内容:(这里的combined_realip就是在nginx.conf中定义的日志格式名字)
access_log /tmp/test.com.log combined_realip;
3.测试语法及重新加载配置
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
4.使用curl测试
curl -x127.0.0.1:80 test.com -I
curl -x127.0.0.1:80 test2.com/admin -I
curl -x127.0.0.1:80 test2.com/admin/index.html -I
4.1查看一下日志
cat /tmp/test.com.log
12.11 Nginx日志切割
Nginx日志切割
1.自定义一个shell脚本
vim /usr/local/sbin/nginx_log_rotate.sh
定义如下内容:
#!/bin/bash ## 假设nginx的日志存放路径为/data/logs/ d=`date -d "-1 day" +%Y%m%d` //这个日期是昨天的日期,因为日志切割是第二天才执行这个脚本的。 logdir="/data/logs" 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` //跟Nginx的-s重新加载配置文件一样
2.执行脚本
sh执行,-x是显示执行的过程(可视化)
sh -x /usr/local/sbin/nginx_log_rotate.sh
2.1查看一下/data/logs目录
ls /data/logs
3.添加任务计划 (脚本之后还要加一个任务计划)
crontab -e //添加任务计划
增加如下内容:(每天凌晨0点执行一下这个脚本)
0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
3.1 定期删除日志:
find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
(找出30天前名字为log-*后缀的日志并删除)
12.12 静态文件不记录日志和过期时间
静态文件不记录日志和过期时间
1.修改虚拟主机配置文件
添加以下配置:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ //匹配脱义静态文件 { expires 7d; //配置过期时间 access_log off; } location ~ .*\.(js|css)$ //匹配js,css文件 { expires 12h; access_log off; }
2.测试语法及重新加载配置
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
3.使用curl测试静态文件不记录,进入目录并创建1.gif 和2.js 后缀的文件
cd /data/wwwroot/test.com
vim 1.gif //内容123 ABC
vim 2.js //内容abc abc abc
3.1 再curl看一下状态结果并查看日志确认(gif和js的没有日志记录)
4.测试一下过期时间:
先curl一下,因为之前有定义过期expires 12h,所以状态中有这个max-age
curl -x127.0.0.1:80 test.com/2.js -I
4.1 我们再去修改一下脚本文件试着把过期时间去掉让其不生效:
vim /usr/local/nginx/conf/vhost/test.com.conf
将定义js模块的 expires 12h 注释掉
4.2 测试语法及重新加载配置
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
4.3 再curl测试查看一下状态
curl -x127.0.0.1:80 test.com/2.js -I
原文:http://blog.51cto.com/404006045/2126627