温馨提示×

debian nginx日志如何清理

小樊
35
2026-09-13 07:45:20
栏目: 智能运维

在 Debian 上清理 Nginx 日志通常有几种方式,取决于你是想立即释放空间自动轮转,还是彻底禁用日志。下面按常见场景说明。


一、最推荐:使用 logrotate(Debian 默认已配置)

Debian 安装 Nginx 后,通常会自带:

/etc/logrotate.d/nginx

查看配置

cat /etc/logrotate.d/nginx

典型内容类似:

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

手动执行一次轮转(立刻清理旧日志)

logrotate -f /etc/logrotate.d/nginx

推荐做法:保持默认,不要手动删日志


二、立即清理当前日志(临时释放空间)

如果你只是想马上腾空间:

1. 清空日志文件(不删文件,Nginx 不报错)

sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log

或一次性清空所有:

sudo truncate -s 0 /var/log/nginx/*.log

⚠️ 不要用 rm 删日志文件,否则 Nginx 还会写已删除的 inode,空间不会释放


三、彻底删除旧日志(已轮转的)

logrotate 后的日志一般长这样:

access.log.1
access.log.2.gz

手动删除:

sudo rm -f /var/log/nginx/*.log.*

四、减少日志量(长期方案)

1. 关闭 access 日志(不推荐生产)

access_log off;

2. 只记录错误

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;

3. 使用 buffer 减少 IO

access_log /var/log/nginx/access.log main buffer=32k flush=5s;

五、检查磁盘占用

df -h
du -sh /var/log/nginx

总结建议

目的 做法
安全清理 logrotate -f
立即释放空间 truncate -s 0
长期管理 调整 logrotate
减少日志 关闭/限制 access_log

如果你愿意,可以贴一下:

  • Debian 版本
  • Nginx 安装方式(apt / 编译)
  • 日志路径

我可以帮你定制一套最合适的日志管理方案。

0