Nginx访问日志、日志切割、静态文件不记日志

十二周三次课 (1月4日)
12.10 Nginx访问日志
在主配置文件中定义格式,在虚拟主机中(server)定义日志路径
vim /usr/local/nginx/conf/nginx.conf
搜索log_format
这里写图片描述

这里写图片描述

在虚拟主机中(server)定义日志路径
vim /usr/local/nginx/conf/vhost/test.conf
access_log /tmp/test.conf.log combined_realip; #combined_realip为格式中的格式名字
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload

[root@wwlinux701 ~]# curl -x127.0.0.1:80 test.com/1.php -I
[root@wwlinux701 ~]# cat /tmp/test.conf.log
127.0.0.1 - [04/Jan/2018:21:05:37 +0800] test.com “/” 401 “-” “curl/7.29.0”
127.0.0.1 - [04/Jan/2018:21:05:53 +0800] test.com “/1.php” 401 “-” “curl/7.29.0”
[root@wwlinux701 ~]#

12.11 Nginx日志切割
•自定义shell 脚本
• vim /usr/local/sbin/nginx_log_rotate.sh//写入如下内容

#! /bin/bash
## 假设nginx的日志存放路径为/data/logs/
d=`date -d "-1 day" +%Y%m%d`
logdir="/tmp/logs"
nginx_pid="/usr/local/nginx/logs/nginx.pid" #找pid是为了执行下面的kill
cd $logdir
for log in `ls *.log`
do
    mv $log $log-$d
done
/bin/kill -HUP `cat $nginx_pid`    #如果不kill就不能生成新的test.log

这里写图片描述
sh -x /usr/local/sbin/nginx_log_rotate.sh #-x是查看sh的执行过程
这里写图片描述
• 任务计划
• 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
find /tmp/ -name .log- -type f -mtime +30 |xargs rm

12.12 静态文件不记录日志和过期时间
•配置如下,放在access日志之下

vim /usr/local/nginx/conf/vhost/test.conf
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$    # \.这里点前面的反斜杠是脱意,精准匹配后缀
    {
          expires      7d;
          access_log off;
    }
location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }

这里写图片描述
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
测试过期时间和不记日志
curl -x127.0.0.1:80 -I test.com/123.js
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值