商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > nginx如何进行日志轮转

nginx如何进行日志轮转

  发布于2026-07-26 阅读(0)

扫一扫,手机访问

说到Nginx日志轮转,最常用的方式就是借助 logrotate 这个工具。它就像一个自动化的日志管家,能帮你压缩、删除旧日志,还能生成新的日志文件,省去手动处理的麻烦。下面就是配置Nginx日志轮转的具体步骤,跟着走一遍就行。

nginx如何进行日志轮转

  1. 先确认系统上有没有装 logrotate。大多数Linux发行版默认都预装了,要是没有,用包管理器(比如 apt-getyum)装一下就行,几秒钟搞定。

  2. 接下来,给Nginx单独创建一个logrotate配置文件。在 /etc/logrotate.d/ 目录下新建一个叫 nginx 的文件:

    sudo touch /etc/logrotate.d/nginx
  3. 用文本编辑器打开这个文件,把下面的配置贴进去:

    /var/log/nginx/*.log {
    daily
    missingok
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
    if [ -f /var/run/nginx.pid ]; then
    kill -USR1 `cat /var/run/nginx.pid`
    fi
    endscript
    }

    这里简单解释一下每个选项的作用:

    • /var/log/nginx/*.log:指定要轮转的日志文件,匹配这个路径下所有 .log 结尾的文件。
    • daily:每天轮转一次,你也可以按需改成 weeklymonthly
    • missingok:如果日志文件不存在,直接跳过,不会报错。
    • compress:轮转后把旧日志压缩成 .gz 格式,节省磁盘空间。
    • delaycompress:延迟压缩——这次轮转后不立刻压缩,等下一次轮转时才压缩上一个版本。这样做的好处是,如果日志还在被写入,不会影响后续操作。
    • notifempty:如果日志文件是空的,就不做轮转,避免生成一堆空文件。
    • create 0640 www-data adm:轮转后创建新的日志文件,权限设为 0640,属主为 www-data,属组为 adm。这个权限和用户组可以根据你的Nginx配置调整。
    • sharedscripts:如果有多个日志文件匹配,只执行一次 postrotate 脚本。
    • postrotate 后面的脚本:轮转完成后,向Nginx主进程发送 USR1 信号,通知它重新打开日志文件,这样新的日志就能继续写入新文件了。
  4. 保存并关闭文件,配置就算完成了。

  5. 最后,测试一下配置是否正确:

    sudo logrotate -f /etc/logrotate.d/nginx

    这个命令会强制触发一次日志轮转。如果一切正常,你会看到旧日志被压缩成 .gz 文件,同时生成一个新的空日志文件。

至此,Nginx日志轮转就配置好了。之后logrotate会根据你设定的频率自动运行,完全不用操心。当然,如果需要手动触发,随时可以用 sudo logrotate -f /etc/logrotate.d/nginx 来强制执行一次。整个流程清晰简洁,掌握了这个技巧,日志管理就再也不是什么麻烦事了。

本文转载于:https://www.yisu.com/ask/82677293.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注