在 Debian 上清理 Nginx 的旧日志,常见做法有 手动删除 / 截断、使用 logrotate(推荐)、以及 定时任务自动清理。下面按实用程度说明。
默认路径一般是:
/var/log/nginx/access.log
/var/log/nginx/error.log
也可能在虚拟主机配置中自定义,例如:
access_log /var/log/nginx/example.access.log;
Debian 通常已经为 Nginx 配置了 logrotate:
/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
}
daily:每天轮转rotate 14:保留 14 天compress:压缩旧日志kill -USR1:通知 Nginx 重新打开日志文件logrotate -f /etc/logrotate.d/nginx
find /var/log/nginx -name "*.log.*" -mtime +14 -delete
truncate -s 0 /var/log/nginx/access.log
truncate -s 0 /var/log/nginx/error.log
或
: > /var/log/nginx/access.log
⚠️ 清空后一定要让 Nginx 重新打开日志:
nginx -s reopen
# 或
kill -USR1 $(cat /var/run/nginx.pid)
access_log off;
access_log /var/log/nginx/access.log combined if=$loggable;
✅ 使用 logrotate(系统级、安全)
❌ 不建议直接 rm access.log
如果你愿意,可以贴一下:
/etc/logrotate.d/nginxnginx -V/var/log/nginx 的文件列表我可以帮你定制一套清理策略。