新网Logo
首页>虚机资讯>

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

登录 注册

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

摘要:摘要: 12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间

Nginx访问日志:

002UASMrzy7605pjKJv15&690.jpg

 

vim/usr/local/nginx/conf/nginx.conf//搜索log_format=配置文件里面可以查找到日志格式

 

定义访问日志

 

定义日志是需要在虚拟主机里面去定义的,nginx里面如果修改了日志格式的名字那么在虚拟主机中定义日志文件需要引用nginx配置文件里面的名字。

vim/usr/local/nginx/conf/vhost/test.com.log=定义虚拟主机日式文件

 

定义完以后-t&&-sreload

[root@aming-01vhost]#/usr/local/nginx/sbin/nginx-t=检测配置文件语法是否错误 nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful [root@aming-01vhost]#/usr/local/nginx/sbin/nginx-sreload=重新加载配置文件

测试配置:状态码为200说明ok

cat/tmp/test.com.log=查看日志里面的信息

 

 

 

Nginx日志切割:

 

nginx日志切割需要使用到系统自带的工具,或者写一个切割的脚本

vim/usr/local/sbin/nginx_log_rotate.sh//写入如下内容=配置nginx需要的日志切割脚本

#!/bin/bash ##假设nginx的日志存放路径为/data/logs/ d=`date-d"-1day"+%Y%m%d`=定义时间(昨天的日期) logdir="/data/logs"=定义日志存放路径 nginx_pid="/usr/local/nginx/logs/nginx.pid" cd$logdir=进入到日志目录下 forlogin`ls*.log`=for循环匹配 do mv$log$log-$d=更改所有配置文件的名字 done /bin/kill-HUP`cat$nginx_pid`

配置好切割脚本以后可以执行测试一下脚本sh-x加上脚本路径-x=可以显示出脚本执行过程

[root@aming-01vhost]#sh-x/usr/local/sbin/nginx_log_rotate.sh ++date-d\'-1day\'+%Y%m%d +d=20180425 +logdir=/tmp/ +nginx_pid=/usr/local/nginx/logs/nginx.pid +cd/tmp/ ++lstest.com.log +forlogin\'`ls*.log`\' +mvtest.com.logtest.com.log-20180425 ++cat/usr/local/nginx/logs/nginx.pid +/bin/kill-HUP1089

写完脚本以后还需要加上一个任务计划:

crontab-e=任务计划

00***/bin/bash/usr/local/sbin/nginx_log_rotate.sh=表示每天凌晨0点执行脚本

 

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

 

同样是在虚拟主机中配置

vim/usr/local/nginx/conf/vhost/test.com.conf=测试的虚拟主机配置文件

 

配置完以后还需要-t&&-sreload检查配置文件语法是否有错误和重新加载配置文件

[root@aming-01vhost]#/usr/local/nginx/sbin/nginx-t nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisok nginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful [root@aming-01vhost]#/usr/local/nginx/sbin/nginx-sreload

测试:curl-x127.0.0.1:80test.com/1.gif/2.gs

cat/tmp/test.con.log