nginx配置文件對訪問日誌文件access.log進行按日期記錄

版本:nginx/1.7.4


根據訪問nginx配置文件

日誌路徑

/usr/local/nginx/logs/

其中把訪問日誌記錄位置

/usr/local/nginx/logs/access/域名/$year-$month-$day-$hour-access.log

錯誤日誌

/usr/local/nginx/logs/error/域名/error_域名.log  error; 


#生產場景一般是 warn | error | crit 這三個級別之一,錯誤日誌級別默認爲error


使用nginx配置自動實現訪問日誌按日期存放,杜絕一個大文件存放

$time_iso8601    生成格式: 2018-01-04T15:00:35+08:00
$time_local      生成格式: 04/Jan/2019:15:00:07 +0800

需要在對應的server 塊中加入

    if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})")
        {
                set $year $1;
                set $month $2;
                set $day $3;
                set $hour $4;
                set $minutes $5;
                set $seconds $6;
        }
    #訪問日誌 按小時
     access_log  logs/access/域名/$year-$month-$day-$hour-access.log;
    #錯誤日誌
     error_log  logs/error/域名/error_域名.log  error;


************************        
注意:這裏需要確認訪問日誌對應路徑,即 /usr/local/nginx/logs/access/域名 的所屬組或者用戶是誰,
     確認是否爲nginx的.否則會導致日誌生成失敗
     所以不是,就需要給nginx的user    test test;權限
     eg:

        #先在文件下創建對應的文件夾
        mkdir access    
        mkdir access/域名 

        #再把權限給nginx的用戶,使之可以進行寫操作記錄日誌
        chown test:test /usr/local/nginx/logs/acces
        chown test:test /usr/local/nginx/logs/acces/域名
        #查看
        ll
        drwxr-xr-x 4 test  test          4096 1月   4 14:18 access

************************

使用nginx檢測和平滑啓動

檢測配置是否正確
/usr/local/nginx/sbin/nginx -t
正確則平滑重啓Nginx
/usr/local/nginx/sbin/nginx -s reload


對於那些暫不需要記錄日誌的域名網站,在對應的server 塊中加入

對訪問該server塊的操作

#不記錄訪問日誌
access_log  off;
#不記錄錯誤日誌
error_log /dev/null;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章