^青火^

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  5 随笔 :: 6 文章 :: 2 评论 :: 9278 阅读

直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务。需要使用到$time_iso8601 内嵌变量来获取时间。$time_iso8601格式如下:2015-08-07T18:12:02+02:00。然后使用正则表达式来获取所需时间的数据。

按天切割日志,前置条件 ,nginx编译安装时,./configigure --参数不包含without的模块,比如缺少gzib就yum 安装gzlib-devel 。最终编译如果能满足 ./configure --prefix=/***/nginx 。则以下配置肯定不会报错。不然会报unkown directive “if"的错误,让你怀疑人生

 

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
}

access_log /data/logs/nginx/www.ttlsa.com-$year-$month-$day-access.log;

这个代码块要放在server{}内。error.log不建议如此使用

 

 

 

 

对了,日志目录要给与足够的权限。或者直接把nginx的运行用户改为root。 

posted on   ^青火^  阅读(631)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示