12.10 Nginx访问日志

nginx 日志打印ulr参数 nginx不打印日志_加载

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_02

是出口ip,并不是本机上192.168这类的ip,查看出口ip可以在百度上直接搜索ip。

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

nginx 日志打印ulr参数 nginx不打印日志_加载_03

下面我们来定义日志格式

nginx 日志打印ulr参数 nginx不打印日志_nginx_04

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

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_05

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

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_06

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

nginx 日志打印ulr参数 nginx不打印日志_配置文件_07

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_08

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

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_09

nginx 日志打印ulr参数 nginx不打印日志_nginx_10

然后打开日志看一下

nginx 日志打印ulr参数 nginx不打印日志_配置文件_11

nginx 日志打印ulr参数 nginx不打印日志_nginx_12

12.11 Nginx日志切割

nginx 日志打印ulr参数 nginx不打印日志_加载_13

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

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

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

nginx 日志打印ulr参数 nginx不打印日志_加载_14

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目的是为了执行下面的

nginx 日志打印ulr参数 nginx不打印日志_加载_15

,这条命令其实和

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_08

差不多,你给日志改名字,但是系统还在写原来名字的日志,所以需要重新加载一下。

nginx 日志打印ulr参数 nginx不打印日志_加载_17

也就是进入到/tmp/下,(因为上面定义了logdir=“/tmp/”)

nginx 日志打印ulr参数 nginx不打印日志_加载_18

是一个for循环,查看这个目录下有哪些log文件,然后把她们改名字,改成log加时间的格式。

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

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

nginx 日志打印ulr参数 nginx不打印日志_nginx_19

(加x选项是为了看脚本执行的过程)

nginx 日志打印ulr参数 nginx不打印日志_nginx_20

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

nginx 日志打印ulr参数 nginx不打印日志_加载_21

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

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_22

nginx 日志打印ulr参数 nginx不打印日志_nginx_23

(意思是每天凌晨零点执行这个脚本)

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

nginx 日志打印ulr参数 nginx不打印日志_加载_24

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

nginx 日志打印ulr参数 nginx不打印日志_加载_25

加入如下内容

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_26

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

之后我们来测试一下吧。

我们先来模拟一个图片

nginx 日志打印ulr参数 nginx不打印日志_nginx_27

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_28

然后在里面随便写点东西。

nginx 日志打印ulr参数 nginx不打印日志_nginx 日志打印ulr参数_29

然后在里面随便写点东西。

然后我们访问一下

nginx 日志打印ulr参数 nginx不打印日志_配置文件_30

nginx 日志打印ulr参数 nginx不打印日志_加载_31

nginx 日志打印ulr参数 nginx不打印日志_nginx_32

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

nginx 日志打印ulr参数 nginx不打印日志_配置文件_33

下面再来看一下过期时间(可以看到是有过期时间的,如果不加

nginx 日志打印ulr参数 nginx不打印日志_nginx_34

是没有过期时间的)

nginx 日志打印ulr参数 nginx不打印日志_配置文件_35