温馨提示×

debian nginx日志怎么清理

小樊
43
2026-09-25 14:02:52
栏目: 智能运维

在 Debian 上清理 Nginx 日志,常见做法有几种,下面按「安全程度」和「常用程度」给你说明。


一、最推荐:用 logrotate(系统自带,自动清理)

Debian 默认已经为 Nginx 配置了 logrotate,一般不需要手动清。

查看配置

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

✅ 优点

  • 自动轮转
  • 自动压缩
  • 不中断 Nginx

二、手动清空日志(临时处理)

如果你只是想立刻释放空间:

方法 1(推荐,不删文件)

> /var/log/nginx/access.log
> /var/log/nginx/error.log

或:

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

✅ Nginx 仍在写同一个文件,不会报错。


三、直接删除日志文件(不推荐)

rm /var/log/nginx/access.log

⚠️ 问题:

  • Nginx 可能仍持有文件句柄
  • 磁盘空间不释放
  • 需要重启或 reload

如果已经删了:

nginx -s reload

四、彻底关闭或限制日志(谨慎)

关闭 access 日志

access_log off;

限制 error 日志级别

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

五、清理历史压缩日志

rm /var/log/nginx/access.log.*
rm /var/log/nginx/error.log.*

六、查看磁盘占用

du -sh /var/log/nginx/*

✅ 推荐总结

场景 做法
日常维护 logrotate
立刻释放空间 truncate
长期不想要日志 access_log off

如果你愿意,我可以帮你优化 Nginx 日志大小或写定时清理脚本。

0 踩