NGINX date_udf 定义日志
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | Nginx日志自动按日期存储 Nginx ( "engine x" ) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP / POP3 / SMTP 代理服务器,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。但是他的日志系统实在是太欠了,所有的日志都会输出到一个文件中,随着时间的过去,那个文件变得越来越大,对我们分析日志非常不方便。 网上目前出来的方式都是在 linux下写脚本来分割日志,但是这种方式很不方便,尤其是对linux环境不熟悉的同学,写这个很费劲,而且系统重启之类的,这个脚本要重新启动,等等,总之很烦。 但是今天,我给大家带来了完美的解决方案,那就是修改nginx源代码,让他支持日志分割。 可能有的朋友看到这会说这个更麻烦,确实修改源代码不是一件容易的事。不愿意看如何修改的朋友,这里直接给出修改后的链接,下载就能用了 nginx - 1.4 . 1 下载地址: nginx - 1.4 . 1 - with - log - split nginx - 1.5 . 9 下载地址: nginx - 1.5 . 9 - with - log - split (推荐) 上面的 1.4 . 1 版只支持新建文件, 1.5 . 9 支持新建文件和文件夹(推荐下载) 日志配置方式请参考src文件夹中的nginx.conf来配置 1.4 . 1 配置文件中新增了 date_udf (格式:yyyy - MM - dd) 变量 1.5 . 9 配置文件中新增了 date_udf (格式:yyyy - MM - dd), year_udf (格式:yyyy), month_udf (格式:MM), day_udf (格式:dd)。 # access_log logs/yearudf/yearudf/month_udf/dayudf/dayudf/date_udf-access.log main; //别忘了把配置文件中的 main 放开 上面的方式配置 到时候日志会在 logs / yyyy / MM / dd / yyyy - MM - dd - access.log 文件中。 特别提示:请给你指定的logs文件夹指定nginx用户的写权限(所谓的nginx用户是指 nginx 配置文件中指定的那个用户) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 作者:知乎用户 链接:https: / / www.zhihu.com / question / 20005591 / answer / 13655393 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在ngx_http_log_module的log_format(http: / / wiki.nginx.org / HttpLogModule #log_format)中提供的变量可以理解为内置变量,只有在对log格式进行制定时才可以使用。对此,我觉得可能是因为在NGX_HTTP_LOG_PHASE阶段对请求的处理其实已经结束,所以作者在设计时觉得没有必要把这些变量作为常规变量暴露出来。 我知道以下的模块或项目可以访问到nginx的时间变量。 •ngx_time_var(http: / / bit.ly / zfAskP),如果你的需求不复杂,它可以胜任。 •ngx_set_misc (http: / / wiki.nginx.org / HttpSetMiscModule #set_local_today),提供了yyyy-mm-dd格式的日期。 •ngx_lua(https: / / github.com / chaoslawful / lua - nginx - module),其中提供了和时间相关的api。 •Tengine(http: / / tengine.taobao.org / document_cn / variables_cn.html),官方微博上说这些变量是为了实现按时间自动切割日志保留的。 PS:大部分nginx时间相关的api在src / core / ngx_times.h,里面时间相关的变量都是缓存过的,可以避免系统调用。 |
时来天地皆同力,运去英雄不自由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!