美文网首页
nginx日志按日期分割

nginx日志按日期分割

作者: 毅巍奇诚 | 来源:发表于2020-03-03 09:50 被阅读0次

    无需借助logrotate等日志处理工具。

    配置

    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        map $time_iso8601 $logdate {
            '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
            default                       'date-not-found';
        }
    
        access_log /var/log/nginx/access-$logdate.log main;
        open_log_file_cache max=10;
    }
    

    open_log_file_cache

    每一条日志记录的写入都是先打开文件再写入记录,然后关闭日志文件。如果日志文件路径中使用了变量为提高性能,可以使用open_log_file_cache指令设置日志文件描述符的缓存。

    使用时遇到了两个问题
    1.出现权限不够的问题,无法写日志,在设置中把user nginx;改为user root;或者给nginx用户log目录的写权限
    2.出现错误日志:testing "/etc/nginx/html" existence failed (2: No such file or directory) while logging request,
    这个问题有两个办法一个是创建/etc/nginx/html目录,另外一个就是在access_log前加上root path(path要绝对路径,是一个可用的真实目录)
    设置后重启nginx就ok了

    相关文章

      网友评论

          本文标题:nginx日志按日期分割

          本文链接:https://www.haomeiwen.com/subject/tpwflhtx.html