nginx访问日志,日志切割,静态文件不记录日志

nginx访问日志

  • 日志格式

    [[email protected] nginx]# vim conf/nginx.conf
    log_format combined_realip ‘$remote_addr $http_x_forwarded_for [$time_local]‘
    ‘$host "$request_uri" $status‘
    ‘"$http_referer" "$http_user_agent"‘;
    combined_realip这个是自定义的日志格式名
    $remote_addr 客户端ip(公网ip)
    $http_x_forwarded_for 代理服务器ip
    $time_local 服务器的本地时间
    $host 访问主机名(域名)
    $request_uri 访问的uri地址
    $status 状态码
    $http_referer referer
    $http_user_agent user agent
  • 除了在主配置文件定义日志格式,还需要在虚拟主机配置文件中增加 access_log /tmp/1.log combined_realip;
    server
    {
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != ‘test.com‘){
     rewrite  ^/(.*)$ http://test.com/$1 permanent;
    }
    access_log /tmp/1.log combined_realip;
    }
    • 这里的combined_realip是主配置文件中定义的日志格式名

      Nginx日志切割

  • 编写一个日志切割脚本
    [[email protected] ~]# vim /usr/local/sbin/nginx_logrotate.sh
    #!/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`
  • 脚本存放路径/usr/local/sbin
  • d变量定义的是切割前一天日期,logdir是日志的路径
  • 用一个for循环来遍历所有的虚拟主机日志
  • 最后一行是生成新的日志文件
  • 清除过期的日志文件命令
    [[email protected] ~]# find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm
  • 任务计划,每天凌晨执行
    [[email protected] ~]# crontab -e
    no crontab for root - using an empty one
    0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh

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

  • 虚拟主机配置如下
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  #匹配.gif等文件
    {
          expires      7d;    #过期时间,如果没有这个,这两个可以写在一个location里
          access_log off;
    }
    location ~ .*\.(js|css)$
    {
          expires      12h;
          access_log off;
    }
  • 测试
    [[email protected] test.com]# vim 1.gif
    [[email protected] test.com]# vim 2.js
    [[email protected] test.com]# curl -x127.0.0.1:80 test.com/1.gif
    dkajdkaj
    [[email protected] test.com]# curl -x127.0.0.1:80 test.com/2.js
    26376732
    [[email protected] test.com]# curl -x127.0.0.1:80 test.com/
    <html>
    <head><title>401 Authorization Required</title></head>
    <body bgcolor="white">
    <center><h1>401 Authorization Required</h1></center>
    <hr><center>nginx/1.14.0</center>
    </body>
    </html>
    [[email protected] test.com]# cat /tmp/nginx_access.log
    127.0.0.1 - [16/Jun/2018:11:05:31 +0800] test.com "/" 401 "-" "curl/7.29.0"
    [[email protected] test.com]# curl -x127.0.0.1:80 test.com/2.jsdjakjk
    <html>
    <head><title>401 Authorization Required</title></head>
    <body bgcolor="white">
    <center><h1>401 Authorization Required</h1></center>
    <hr><center>nginx/1.14.0</center>
    </body>
    </html>
    [[email protected] test.com]# cat /tmp/nginx_access.log
    127.0.0.1 - [16/Jun/2018:11:05:31 +0800] test.com "/" 401 "-" "curl/7.29.0"
    127.0.0.1 - [16/Jun/2018:11:06:55 +0800] test.com "/2.jsdjakjk" 401
    以.js和.gif结尾的不记录,其他的记录
  • max-age=43200这个是过期时间
    [[email protected] test.com]# curl -x127.0.0.1:80 test.com/2.js -I
    HTTP/1.1 200 OK
    Server: nginx/1.14.0
    Date: Sat, 16 Jun 2018 03:07:14 GMT
    Content-Type: application/javascript
    Content-Length: 9
    Last-Modified: Sat, 16 Jun 2018 03:04:31 GMT
    Connection: keep-alive
    ETag: "5b247e3f-9"
    Expires: Sat, 16 Jun 2018 15:07:14 GMT
    Cache-Control: max-age=43200
    Accept-Ranges: bytes

原文地址:http://blog.51cto.com/akui2521/2130448

时间: 2024-10-08 05:09:37

nginx访问日志,日志切割,静态文件不记录日志的相关文章

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

一.Nginx访问日志#vim /usr/local/nginx/conf/nginx.conf日志格式的名字combined_realip可以自定义,例如将它修改为aming,注意,这里定义为什么,后面引用的时候就定义为什么(nginx配置文件看见分号才是这一行结束)#vim /usr/local/nginx/conf/vhost/test.com.conf //增加如下一行#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/nginx

nginx日志切割,日志格式,静态文件不记录日志,配置缓存

我是直接写的一个简单的shell实现的,内容如下: #! /bin/bash datedir=`date +%Y%m%d` /bin/mkdir  /home/logs/$datedir >/dev/null 2>&1 /bin/mv /home/logs/*.log /home/logs/$datedir /bin/kill -HUP `cat /var/run/nginx.pid` 这样执行以后,就会在/home/logs/$datedir目录下生成日志文件,你可以在/etc/cr

48.Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.

Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍

Nginx访问日志 1. 进入配置文件 [[email protected] src]# vim /usr/local/nginx/conf/nginx.conf  //搜索log_format 参考更改配置成如下: log_format aming '$remote_addr $http_x_forwarded_for [$time_local]' 如图: 日志格式字段含义如下: combined_realip为日志格式的名字,后面可以调用它. 2.到虚拟主机配置文件中指定访问日志的路径 [[

Nginx的访问日志、Nginx的日志切割、Nginx静态文件不记录日志和过期时间

Nginx的访问日志 Nginx的日志切割 Nginx静态文件不记录日志和过期时间 原文地址:http://blog.51cto.com/13515599/2086909

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

12.10 Nginx访问日志 [[email protected] vhost]# vim test.com.conf除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加access_log /tmp/test.com.log martin;这里的combined_realip就是在nginx.conf中定义的日志格式名字 [[email protected] vhost]# /usr/local/nginx/sbin/nginx -tnginx: the co

十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间

Nginx访问日志 Nginx的文件格式存在于主配置文件中./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_refererreferer$htt

四十八、Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 # pwd /usr/local/nginx/conf [[email protected] conf]# vim nginx.conf log_format ELA '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; 解析

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

Nginx访问日志 Nginx访问日志主要有两个参数控制:log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志 设置访问日志的格式,打开配置文件vim /usr/local/nginx/conf/nginx.conf 搜索关键字log_format就可以找到日志格式配置行log_format语法格式及参数语法说明如下:$remote_addr客户端IP(公网IP)$http_x_forwa

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

1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';  (这是定义日志引用时的名字:combined_realip,后面的内容,就是需要被引用的)可以理