debian

如何设置Nginx日志保留期限

小樊
35
2025-06-03 02:22:43
栏目: 编程语言

要设置Nginx日志保留期限,您可以使用logrotate工具来自动管理日志文件

  1. 确保logrotate已安装在您的系统上。在大多数Linux发行版中,logrotate已经预装。如果没有,请使用包管理器安装,例如在Ubuntu/Debian上使用sudo apt-get install logrotate

  2. 创建一个新的logrotate配置文件,或者在现有的配置目录(通常位于/etc/logrotate.d/)中创建一个新文件。例如,您可以创建一个名为nginx的文件:

    sudo nano /etc/logrotate.d/nginx
    
  3. 在新创建的配置文件中,添加以下内容:

    /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:如果日志文件丢失,不要报错。
    • rotate 7:保留7个轮转日志文件。
    • compress:压缩旧的日志文件。
    • notifempty:如果日志文件为空,则不进行轮转。
    • create 0640 www-data adm:创建新的日志文件,权限为0640,属主为www-data,属组为adm。
    • sharedscripts:如果有多个日志文件,只执行一次postrotate脚本。
    • postrotateendscript之间的脚本会在轮转日志后执行。这里我们发送一个USR1信号给Nginx进程,通知它重新打开日志文件。
  4. 保存并关闭配置文件。

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

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

    这将强制执行Nginx日志轮转。检查/var/log/nginx/目录,确保日志文件已按预期轮转。

现在,Nginx日志将按照您在配置文件中设置的保留期限进行自动管理。

0
看了该问题的人还看了