一、Nginx访问日志

1、查看日志格式:vim /usr/local/nginx/conf/nginx.conf

combined_realip为日志格式的名字。

2、定义访问日志 

1)编辑虚拟主机配置文件

server
{
listen 80;
server_name test.com test1.com test2.com test3.com;
index index.html index.htm index.php;
root /data/testnginx/test.com;
if ($host != 'test.com' ) {
rewrite ^/(.*)$ http://test.com/$1 permanent;
}
access_log /tmp/nginx.log combined_realip
}
3、测试

二、日志切割

1、Nginx没有切割工具,需要借助系统切割工具或者自定义脚本。

2、自定义脚本: vim /usr/local/sbin/nginx_rotate.sh

#!/bin/bash
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`

3、查看脚本执行过程  sh -x /usr/local/sbin/nginx_rotate.sh; -x 能显示脚本执行的过程

4、定期清理日志,编写脚本:vim /usr/local/sbin/nginx_rm.sh

find /tmp/ -name *.log-* -type f mtime +30 |xargs rm

5、加入任务计划,定时执行。crontab -e

0 0 * * * /bin/bash /usr/local/sbin/nginx_rotate.sh
0 0 1 * * /bin/bash /usr/local/sbin/nginx_rm.sh

三、配置静态文件不记录日志和过期时间

1、编辑配置文件 :vim /usr/local/nginx/conf/vhost/test.com.conf

server
{
listen 80;
server_name test.com test1.com test2.com test3.com;
index index.html index.htm index.php;
root /data/testnginx/test.com;
if ($host != 'test.com' ) {
rewrite ^/(.*)$ http://test.com/$1 permanent;
}
location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
{
expires 12h;
access_log off;
}
access_log /tmp/nginx.log combined_realip;
}
location ~  指定对应的静态文件,expires 配置过期时间,access_log 配置为off则可以不记录访问日志。

2、测试

可以发现1.jpg和2.js的访问日志没有记录。只有其他两条记录

 

查看过期时间

 

posted on 2018-03-14 21:42  天梭  阅读(140)  评论(0编辑  收藏  举报