linux

如何设置nginx日志的轮转策略

小樊
41
2025-04-06 10:16:51
栏目: 编程语言

要设置 Nginx 日志的轮转策略,你可以使用 logrotate 工具。以下是配置 Nginx 日志轮转的步骤:

  1. 确保 logrotate 已经安装在你的系统上。大多数 Linux 发行版默认已经安装了 logrotate。如果没有安装,你可以使用以下命令安装:

    对于基于 Debian 的系统(如 Ubuntu):

    sudo apt-get install logrotate
    

    对于基于 RHEL 的系统(如 CentOS):

    sudo yum install logrotate
    
  2. 创建一个 logrotate 配置文件专门用于 Nginx。在 /etc/logrotate.d/ 目录下创建一个名为 nginx 的文件:

    sudo nano /etc/logrotate.d/nginx
    
  3. 将以下内容粘贴到 nginx 文件中,并根据你的需求进行修改:

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

    这里的配置表示:

    • 每天轮转日志文件(daily)
    • 如果日志文件丢失,不要报错(missingok)
    • 保留 7 天的日志文件(rotate 7)
    • 对旧日志文件进行压缩(compress)
    • 如果日志文件为空,则不进行轮转(notifempty)
    • 创建新的日志文件,权限为 0640,属主为 www-data,属组为 adm(create 0640 www-data adm)
    • 在轮转前后执行脚本(sharedscripts)
    • 轮转后向 Nginx 发送 USR1 信号,通知它重新打开日志文件(postrotate)
  4. 保存并关闭文件。

  5. 测试 logrotate 配置是否正确。运行以下命令:

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

    如果没有错误信息,说明配置正确。

现在,Nginx 日志将按照你设置的策略进行轮转。你可以根据实际需求调整配置文件中的参数。

0
看了该问题的人还看了