如何清理nginx的access.log

 如何清理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 主进程来重新打开日志文件,确保日志继续写入新文件。

可以根据需要修改此文件中的参数,例如更改轮替周期(weeklymonthly)或保留的日志份数。

 

❤️ 如果这篇文章对您有帮助,欢迎打赏支持

微信打赏二维码

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

吴川斌

Leave a Reply