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

时间:2021-03-13 10:34:50

一、Nginx访问日志

vim /usr/local/nginx/conf/nginx.conf //搜索log_format

Linux centosVMware Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间 日至格式

改为davery格式

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

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

$remote_addr  客户端IP(公网IP)

$http_x_forwarded_for  代理服务器的IP

$time_local    服务器本地时间

$host  访问主机名(域名)

$request_uri  访问的url地址

$status  访问的url地址

$http_referer  状态码

$http_referer     referer

$http_user_agent  user_agent

除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加

vim /usr/local/nginx/conf/vhost/aaa.com.conf

access_log /tmp/test.com.log davery;

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

这里的davery就是在nginx.conf中定义的日志格式名字

测试重加载

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

重访问

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

查看log记录

cat /tmp/aaa.com.conf.log

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

二、Nginx日志切割

自定义shell 脚本

vim /usr/local/sbin/nginx_logrotate.sh//写入如下内容,日志的路径都在/usr/local/sbin/下边

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

#! /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` 任务计划

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

pid路径

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

[root@davery vhost]# for f in `ls `; do ls -l $f; done

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

会做两个循环 aaa.com.conf 和aaa.conf

查看脚本执行顺序

sh -x /usr/local/sbin/nginx_logrotate.sh

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

ls /tmp/  接可以看到新的log

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

 清除不需要的过期日志

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

查找log

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

删除log

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

查看脚本内容

cat /usr/local/sbin/nginx_logrotate.sh

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

任务计划,每天0:0执行一次脚本

crontab -e

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

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

cd /usr/local/nginx/conf/vhost/

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

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$     .*通配    \.脱义

{

expires 7d;

access_log off;

}

location ~ .*\.(js|css)$

{ expires 12h;

access_log off;

}

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

改为

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

重加载

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

测试进入虚拟主机文件test.com,创建图片

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

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