Hello! 欢迎来到小浪云!


如何设置nginx日志的轮转周期


avatar
小浪云 2025-03-05 36

如何设置nginx日志的轮转周期

本文介绍如何利用logrotate工具配置Nginx日志轮转,实现日志文件的定期自动管理。

前提条件: 确保您的系统已安装logrotate。大多数Linux发行版默认安装,否则请使用系统包管理器安装(例如,apt-get或yum)。

步骤一:创建配置文件

在/etc/logrotate.d/目录下创建一个名为nginx的配置文件:

sudo touch /etc/logrotate.d/nginx

步骤二:编辑配置文件

使用文本编辑器打开/etc/logrotate.d/nginx文件,并添加以下配置:

/var/log/nginx/*.log {     daily                  # 每天轮转     missingok              # 日志文件不存在时忽略     compress               # 压缩轮转后的日志文件     delaycompress          # 延迟压缩,直到下次轮转     notifempty             # 日志文件为空时忽略     create 0640 www-data adm # 创建新日志文件,权限为0640,属主www-data,属组adm     sharedscripts          # 多个日志文件时,只执行一次postrotate脚本     postrotate         if [ -f /var/run/nginx.pid ]; then             kill -USR1 $(cat /var/run/nginx.pid)         fi     endscript }

配置参数说明:

  • daily:每天轮转日志。可修改为weekly(每周)、monthly(每月)等。
  • missingok:如果日志文件不存在,则忽略错误。
  • compress:轮转后的日志文件将被压缩(.gz)。
  • delaycompress:延迟压缩,直到下次轮转。
  • notifempty:如果日志文件为空,则不进行轮转。
  • create 0640 www-data adm:创建新的日志文件,权限为0640,所有者为www-data,组为adm。
  • sharedscripts:确保即使有多个匹配的日志文件,postrotate脚本也只执行一次。
  • postrotate … endscript:日志轮转后执行的脚本。此脚本向Nginx主进程发送USR1信号,触发Nginx重新打开日志文件。

步骤三:测试配置

运行以下命令测试配置是否正确:

sudo logrotate -d /etc/logrotate.d/nginx

-d选项用于测试模式,不会实际执行轮转操作。 如果一切正常,您将看到类似的输出,显示logrotate如何处理Nginx日志文件。 如有错误,请仔细检查配置文件。

步骤四:运行logrotate

要立即执行日志轮转,运行以下命令:

sudo logrotate /etc/logrotate.d/nginx

之后,logrotate将根据您设置的周期自动轮转Nginx日志。

通过以上步骤,您可以成功配置Nginx日志的轮转周期,方便日志管理和存储空间优化。 记得根据实际需求调整daily等参数。

相关阅读