12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间

12.10 Nginx访问日志
12.11 Nginx日志切割

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


Nginx访问日志

1.首先我们进入cat /usr/local/nginx/conf/nginx.conf 里面 下图是定义格式//这里log_format 我定义了etc(可以随意定义)


相对应参数意义


2.然后再配置文件添加配置

vim /usr/local/nginx/conf/vhost/test.conf 

    添加:

                access_log /nginx_log/nginx.log  etc;

定义日志存放路径, 后面跟格式名就是刚才在nginx.conf里面定义的log_format ,不定义会默认日志格式


3./usr/local/nginx/sbin/nginx -t 

    /usr/local/nginx/sbin/nginx -s reload    

4.测试

        curl -I -x127.0.0.1:80 test1.com 

查看日志:

        cat /nginx_log/nginx.log     //可以下图相对应的就是nginx.conf设置的格式



Nginx日志切割:

要想切割nginx日志需要借助系统的切割工具或者自定义脚本

下面示例自定义脚本切割+任务计划实现

  1.  创建一个脚本文件  //脚本最好都放在/usr/local/sbin下

            vim /usr/sbin/nginx_log_rotate.sh

  • #! /bin/bash
    d=`date -d "-1 day" +%Y%m%d`     //定义变量

     
    logdir="/nginx_log/"                           //指定日志切割路径
    nginx_pid="/usr/local/nginx/logs/nginx.pid"      //指定pid
    cd $logdir
    for log in `ls *.log`
    do
    mv $log $log-$d                                 //把原先的日志做个改名
    done
    /bin/kill -HUP `cat $nginx_pid`            

     2. 运行脚本   //加个-x查看过程

            sh -x /usr/sbin/nginx_log_rotate.sh


    3.查看日志有没有生效

    cd /nginx_log | ls


    4.指定任务计划

    0 0 * * *  /bin/bash /usr/sbin/nginx/nginx_log_rotate.sh  每天凌晨运行此脚本


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

1.在虚拟主机配置文件添加以下配置:

            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$       //匹配
{
expires  7d;                                //缓存时间
access_log off;
}
location ~ .*\.(js|css)$
{
expires  12h;
access_log off;

}

2.    /usr/local/nginx/sbin/nginx  -t

        /usr/local/nginx/sbin/nginx  -s reload

3. curl -x127.0.0.1:80 test.com/1.jpg  可以看到以下图没记录,当我输入jpgass就有记录了,证明生效


4.curl -x127.0.0.1:80 test.com/1.jpg -I   // 查询缓存时间   max-age=604800 等于7天也生效了


文章来源: 12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:12.10 Nginx访问日志 12.11 Nginx日志切割 12.12 静态文件不记录日志和过期时间