debian

怎样设置Debian Nginx日志保留期限

小樊
32
2025-07-05 13:00:45
栏目: 智能运维

要设置Debian上Nginx日志的保留期限,您可以使用logrotate工具。以下是配置日志保留期限的步骤:

  1. 确保logrotate已安装: Debian系统通常已经预装了logrotate。如果没有,请运行以下命令安装:

    sudo apt-get update
    sudo apt-get install logrotate
    
  2. 创建或编辑Nginx日志配置文件: 在/etc/logrotate.d/目录下创建一个名为nginx的文件,或者编辑现有的文件。使用文本编辑器打开文件,例如:

    sudo nano /etc/logrotate.d/nginx
    
  3. 添加以下配置: 在nginx文件中添加以下内容,根据您的需求调整保留期限和其他选项:

    /var/log/nginx/*.log {
        daily
        missingok
        rotate 7
        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
    }
    

    这里的配置表示:

    • 每天轮转日志文件(daily
    • 如果日志文件丢失,不要报错(missingok
    • 保留7天的日志文件(rotate 7
    • 轮转后的日志文件进行压缩(compress
    • 延迟压缩,直到下一次轮转(delaycompress
    • 如果日志文件为空,不进行轮转(notifempty
    • 创建新的日志文件,权限为0640,属主为www-data,属组为adm(create 0640 www-data adm
    • 在轮转前后执行脚本(sharedscripts
    • 轮转前发送USR1信号给Nginx进程,通知它关闭当前日志文件并打开新的日志文件(postrotate部分)
  4. 保存并退出编辑器。

现在,Nginx日志将根据您在配置文件中设置的保留期限进行轮转。您可以通过运行以下命令手动测试日志轮转:

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

这将强制执行Nginx日志轮转,即使尚未到达预定的轮转时间。

0
看了该问题的人还看了