linux学习第四十五篇:Nginx访问日志,Nginx日志切割,静态文件不记录日志和过期时间

Nginx访问日志

  • 日志格式
    vim /usr/local/nginx/conf/nginx.conf //搜索log_format
    下图中就是Nginx的日志格式:
    combined_realip是日志格式名,我们可以自己自定义,这里我们改为xie_log
    这里写图片描述

字段含义
$remote_addr客户端IP(公网IP)
$http_x_forwarded_for代理服务器的IP
$time_local服务器本地时间
$host访问主机名(域名)
$request_uri访问的url地址
$status状态码
$http_refererreferer
$http_user_agentuser_agent

  • 定义test.com的日志:
    这里写图片描述
    用curl访问test.com后查看日志:
    这里写图片描述

Nginx日志切割

  • 自定义shell 脚本
    vim /usr/local/sbin/nginx_log_rotate.sh
    写入如下内容
#! /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` //跟Nginx的-s重新加载配置文件一样
  • 执行一下这个脚本,sh执行,-x是显示执行的过程:
    sh -x /usr/local/sbin/nginx_log_rotate.sh
    这里写图片描述

  • crontab -e 添加任务计划:
    0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh //每天凌晨0点执行这个脚本

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

  • vim /usr/local/nginx/conf/vhost/test.com.conf
    配置如下:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ //匹配静态文件
    {
          expires      7d; //过期时间
          access_log off;
    }
location ~ .*\.(js|css)$ //匹配js,css文件
    {
          expires      12h;
          access_log off;
    }

这里写图片描述

  • 保存退出后记得-t,-s测试加载配置文件

  • curl测试:
    以gif,js等等这些文件结尾的静态文件都不会记录在日志中
    这里写图片描述
    这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值