linux

nginx如何进行日志轮转

小樊
44
2025-09-27 21:02:17
栏目: 编程语言

Nginx 日志轮转通常是通过 logrotate 工具来实现的。logrotate 是一个 Linux 系统用于管理日志文件的工具,它可以自动压缩、删除和创建新的日志文件。以下是如何配置 Nginx 日志轮转的步骤:

  1. 确保 logrotate 已经安装在你的系统上。在大多数 Linux 发行版中,logrotate 已经预装了。如果没有,你可以使用包管理器(如 apt-get 或 yum)来安装它。

  2. 创建一个 logrotate 配置文件专门用于 Nginx。在 /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:指定需要轮转的日志文件路径。
    • daily:每天轮转一次日志文件。
    • missingok:如果日志文件不存在,不会产生错误。
    • compress:压缩轮转后的日志文件。
    • delaycompress:延迟压缩,直到下一次轮转。
    • notifempty:如果日志文件为空,不进行轮转。
    • create 0640 www-data adm:创建新的日志文件,权限为 0640,属主为 www-data,属组为 adm。
    • sharedscripts:如果有多个日志文件,只执行一次 postrotate 脚本。
    • postrotate:轮转后执行的脚本。这里发送 USR1 信号给 Nginx 主进程,通知它重新打开日志文件。
  4. 保存并关闭配置文件。

  5. 测试 logrotate 配置是否正确:

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

    这个命令会强制执行 Nginx 日志轮转。如果一切正常,你应该能看到压缩后的旧日志文件和新的空日志文件。

现在,Nginx 日志轮转已经配置好了。logrotate 会根据配置文件中的设置自动进行日志轮转。你也可以手动触发日志轮转,只需运行 sudo logrotate -f /etc/logrotate.d/nginx 命令即可。

0
看了该问题的人还看了