Nginx訪問日誌,Nginx日誌切割,靜態文件不記錄日誌和過時時間

Nginx訪問日誌

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

  • 打開主配置文件除了在主配置文件nginx.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

切換到cd /usr/local/nginx/conf/vhost/目錄下nginx

打開主配置文件,搜索/log_formatshell

combined_realip 日誌格式的名字,後面要調用。vim

定義test.com.conf日誌格式,增長一行內容以下,保存退出bash

檢查配置文件是否有語法錯誤,並從新加載curl

訪問測試測試

查看日誌url

Nginx日誌切割

  • 自定義shell 腳本
  • vim /usr/local/sbin/nginx_log_rotate.sh//寫入以下內容

#! /bin/bashspa

## 假設nginx的日誌存放路徑爲/data/logs/日誌

d=`date -d "-1 day" +%Y%m%d`orm

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`

  • 任務計劃
  • 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

首先建立一個shell腳本,之後全部的shell腳本都放入到/usr/local/sbin/目錄下

d=`date -d "-1 day" +%Y%m%d`,定義切割時間(是前一天的)

logdir="/tmp/" ,指定要切割的日誌路徑

nginx_pid="/usr/local/nginx/logs/nginx.pid",調用pid,目的是執行命令:/bin/kill -HUP `cat $nginx_pid`

for log in `ls *.log` ;do mv $log $log-$d; done  進行循環

/bin/kill -HUP `cat $nginx_pid`,生成新的日誌文件

執行shell腳本,-x選項目的是顯示腳本執行過程

查看日誌切割文件

清理30天之前的日誌文件

添加一個任務計劃(測試不保存)

靜態文件不記錄日誌和過時時間

打開配置文件,添加內容以下,保存退出

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ ,匹配文件類型

expires 7d,過時時間爲7天

檢查配置文件是否有語法錯誤,並從新加載

測試,訪問以gif和js結尾的文件不記錄日誌

測試過時時間(若是註釋掉expires,則不會出現)

相關文章
相關標籤/搜索