• Nginx访问日志.Nginx日志切割


    11月27日任务

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

    1.Nginx访问日志

    示例一:

    • 日志格式  
    • vim /usr/local/nginx/conf/nginx.conf //搜索log_format

    $remote_addr

    客户端IP(公网IP)

    $http_x_forwarded_for

    代理服务器的IP

    $time_local

    服务器本地时间

    $host

    访问主机名(域名)

    $request_uri

    访问的url地址

    $status

    状态码

    $http_referer

    referer

    $http_user_agent

    user_agent

    • 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加
    • vim test.com.conf
    • access_log /tmp/1.log combined_realip;

    •  这里的combined_realip就是在nginx.conf中定义的日志格式名字  
    • -t && -s reload 检查语法并重新加载配置文件
    • curl -x127.0.0.1:80 test.com -I  测试

    • cat /tmp/1.log 查看日志文件

    2.Nginx日志切割

    示例一:因为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" 定义位置,找他的pid

    cd $logdir 进入目录下

    for log in `ls *.log`  做个for循环

    do    

       mv $log $log-$d   做一个改名操作

    done

    /bin/kill -HUP `cat $nginx_pid`  重新加载一下,生成新的日志文件

    • 执行一下这个脚本来看看效果,执行过程

    • ls /tmp/ 看一下

    • 在做一个任务计划  ,每天0.0分执行该脚本
    • crontab -e 编辑如下

    0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

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

    示例一:

    • vi test.com.conf
    • 配置如下

    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$    

    {          

    expires      7d;          定义过期时间

    access_log off;    关闭日志记录

    }

    location ~ .*.(js|css)$    

    {          

    expires      12h;          

    access_log off;    

    }

    • -t &&reload 检测语法,并重新加载一下配置文件

    • 测试,先创建两个以图片结尾的文件

    cd /data/wwwroot/test.com

    vim 1.gif

    vim 2.js

    • curl测试一下

    • 查看日志是否记录

    • 测试过期时间

  • 相关阅读:
    css--display属性中inline-block与inline的区别
    css基础--常用css属性01
    css基础--简单介绍css
    html常用标签的使用方法
    html概括
    python基础之socket与socketserver
    linux基础命令之sed
    asp.net文件流下载的代码摘要
    window下golang生成静态库给C语言调用
    golang生成c-shared so供c语言或者golang调用到例子
  • 原文地址:https://www.cnblogs.com/xiami2046/p/12781482.html
Copyright © 2020-2023  润新知