新网Logo
首页>虚机资讯>

Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间

登录 注册

Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间

摘要:Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format 打开主配置文件除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx

Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format
打开主配置文件除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.conf中定义的日志格式名字 -t && -s reload curl -x127.0.0.1:80 test.com -I cat /tmp/1.log

1 (67).jpg

切换到cd /usr/local/nginx/conf/vhost/目录下

打开主配置文件,搜索/log_format

combined_realip 日志格式的名字,后面要调用。

定义test.com.conf日志格式,增加一行内容如下,保存退出

检查配置文件是否有语法错误,并重新加载

访问测试

查看日志

Nginx日志切割 自定义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`

任务计划 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

首先创建一个shell脚本,以后所有的shell脚本都放入到/usr/local/sbin/目录下

d=`date -d "-1 day" +%Y%m%d`,定义切割时间(是前一天的)

logdir="/tmp/" ,指定要切割的日志路径

nginx_pid="/usr/local/nginx/logs/nginx.pid",调用pid,目的是执行命令:/bin/kill -HUP `cat $nginx_pid`

for log in `ls *.log` ;do mv $log $log-$d; done 进行循环

/bin/kill -HUP `cat $nginx_pid`,生成新的日志文件

执行shell脚本,-x选项目的是显示脚本执行过程

查看日志切割文件

清理30天以前的日志文件

添加一个任务计划(测试不保存)

静态文件不记录日志和过期时间

打开配置文件,添加内容如下,保存退出

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ ,匹配文件类型

expires 7d,过期时间为7天

检查配置文件是否有语法错误,并重新加载

测试,访问以gif和js结尾的文件不记录日志

测试过期时间(如果注释掉expires,则不会出现)