12.10 Nginx访问日志

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间是出口ip,并不是本机上192.168这类的ip,查看出口ip可以在百度上直接搜索ip。

打开配置文件nginx.conf,然后搜索log_format找到如下图位置,这就是定义日志格式的部分。白色选中的是日志格式的名字,可以随便定义这里我们定义为aming(nginx.conf一句话是以分号为结尾的)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

下面我们来定义日志格式

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

1.打开虚拟主机配置文件test.com.conf

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后添加如下红框里的内容(定义日志放在哪里及日志格式名字)如果不写这一行,那么日志格式就是默认的。

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后我们-t检查错误,然后重新加载

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后我们访问一下网站让日志记录一下

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后打开日志看一下

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

12.11 Nginx日志切割

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

因为nginx不想apache有自带的日志切割工具,所以你需要使用系统的切割工具,或者自己写一个切割脚本。

下面我们就来自己写切割脚本

1.在如下目录创建如下文件(以后脚本最好都放在这里)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

2.然后我们编辑它,加入如下内容,(logdir是日志的路径,我们上面已经把日志的路径定义在了tmp下,所以这里也要改成"/tmp/")

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

第一行是定义日期,这里我们定义的是昨天的时间,因为我们的日志一般是在第二天凌晨也就是刚过0点的时候做切割,切割的这个日志肯定是昨天的,所以给这个日志写名字肯定写的是昨天的日期,这一条代码的作用就是生成昨天的日期。

nginx_pid就是找它的pid,找pid目的是为了执行下面的十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间,这条命令其实和十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间差不多,你给日志改名字,但是系统还在写原来名字的日志,所以需要重新加载一下。

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间也就是进入到/tmp/下,(因为上面定义了logdir=“/tmp/”)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间是一个for循环,查看这个目录下有哪些log文件,然后把她们改名字,改成log加时间的格式。

然后最后重新加载一下,生成新的test.com.log,因为你已经把原来的日志名字改掉了,不重新加载一下系统会找不到日志,写不了日志。

下面我们来执行一下这个脚本,

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间(加x选项是为了看脚本执行的过程)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

当日志原来越多的时候你就需要清理,我们可以用如下命令删除30天以前的日志文件。

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后写完脚本之后我们需要把它加入到任务计划里去,

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间(意思是每天凌晨零点执行这个脚本)

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

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

1.编辑虚拟主机配置文件十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间加入如下内容

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后-t,然后重新加载。

之后我们来测试一下吧。

我们先来模拟一个图片

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间然后在里面随便写点东西。

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间然后在里面随便写点东西。

然后我们访问一下

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

然后看一下日志(可以看到只有一条记录)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

下面再来看一下过期时间(可以看到是有过期时间的,如果不加十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间是没有过期时间的)

十二周三次课 2018.01.04 Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

相关文章:

  • 2021-07-04
  • 2021-08-20
  • 2021-10-17
  • 2021-05-22
  • 2021-04-04
  • 2021-12-17
  • 2021-04-12
猜你喜欢
  • 2021-06-21
  • 2021-04-04
  • 2021-04-07
  • 2021-06-24
  • 2021-05-03
相关资源
相似解决方案