如何清理nginx的access.log

定位 access.log 文件
在大多数 Linux 发行版中,Nginx 的访问日志文件默认存储在 /var/log/nginx/access.log。如果不确定文件的具体位置,可以查看 Nginx 的配置文件(通常是 /etc/nginx/nginx.conf 或 /etc/nginx/sites-enabled/ 下的虚拟主机配置文件),找到 access_log 指令所指定的文件路径。
手动清理 access.log
使用 truncate 命令,该方法会将文件大小截断为0,但会保留原有的文件句柄,因此 Nginx 服务无需重启即可继续向该文件写入日志。
truncate -s 0 /var/log/nginx/access.log
自动清理:配置日志轮替 (Log Rotation)
为了避免日志文件无限增长,最佳实践是配置日志轮替,让系统自动管理日志文件。大多数 Linux 系统都使用 logrotate 工具来完成这项工作。
logrotate 的 Nginx 配置文件通常位于 /etc/logrotate.d/nginx。一个典型的配置示例如下:
/var/log/nginx/*.log {
daily
missingok
rotate 14
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) 对 /var/log/nginx/ 目录下的所有 .log 文件进行轮替。
保留最近 14 天 (rotate 14) 的日志文件。
对旧的日志文件进行压缩 (compress)。
在轮替后,通过发送 USR1 信号给 Nginx 主进程来重新打开日志文件,确保日志继续写入新文件。
可以根据需要修改此文件中的参数,例如更改轮替周期(weekly, monthly)或保留的日志份数。
❤️ 如果这篇文章对您有帮助,欢迎打赏支持

扫描上方二维码,用微信打赏

