nginx日志 logrotate配置
nginx 日志 logrotate配置如下:
/var/log/nginx/*.log { daily missingok rotate 20 compress delaycompress notifempty create 664 appops netease sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }
sharedscripts的作用是什么?
在前面nginx的例子里声明日志文件的时候用了星号通配符,也就是说这里可能涉及多个日志文件,比如:access.log和error.log。说到这里大家或许就明白了,sharedscripts的作用是在所有的日志文件都轮转完毕后统一执行一次脚本。如果没有配置这条指令,那么每个日志文件轮转完毕后都会执行一次脚本。这里说的脚本指的就是sharedscripts和endscript中间的配置内容。
在这里logrotate采用的是create方式转存文件的,这种转存思路是重命名源文件,然后创建新的日志文件,这个时候日志还是向旧的日志文件里面输入日志(虽然重命名了,但是并不影响。)。
这个时候需要向nginx发送USR1信号以通知nginx重新打开新的日志文件,postrotate中的内容就是处理这件事情,nginx收到信号之后才会打开新的日志文件,向其中输入日志内容。
logrotate的create方式可以参考logrotate机制和原理这篇博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构