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;

 

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