温馨提示×

CentOS下nginx日志轮转设置

小樊
41
2025-10-05 03:16:17
栏目: 智能运维

在 CentOS 系统中,Nginx 日志轮转通常是通过 logrotate 工具来实现的。logrotate 是一个用于管理日志文件的工具,可以自动压缩、删除和创建新的日志文件。要配置 Nginx 日志轮转,请按照以下步骤操作:

  1. 确保 logrotate 已经安装在您的 CentOS 系统上。如果没有安装,可以使用以下命令安装:
sudo yum install logrotate
  1. 找到 logrotate 的配置文件。通常情况下,它位于 /etc/logrotate.conf。此外,您还可以在 /etc/logrotate.d/ 目录下找到特定应用程序的日志轮转配置文件。

  2. 使用文本编辑器打开 /etc/logrotate.d/nginx 文件。如果该文件不存在,请创建一个新文件:

sudo vi /etc/logrotate.d/nginx
  1. nginx 配置文件中,添加以下内容:
/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 0640 nginx adm
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}

这里的配置表示:

  • 每天轮转日志文件(daily)
  • 如果日志文件丢失,不要报错(missingok)
  • 保留最近 7 天的日志文件(rotate 7)
  • 使用 gzip 压缩旧的日志文件(compress)
  • 如果日志文件为空,则不进行轮转(notifempty)
  • 创建新的日志文件,权限为 0640,属主为 nginx,属组为 adm(create 0640 nginx adm)
  • 在轮转日志文件之前执行 postrotate 脚本
  • 向 Nginx 主进程发送 USR1 信号,通知它重新打开日志文件(postrotate 和 endscript 之间的部分)
  1. 保存并关闭配置文件。

  2. 测试 logrotate 配置是否正确:

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

如果没有错误信息,说明配置正确。

现在,Nginx 日志轮转应该已经设置好了。logrotate 将根据配置文件中的设置自动轮转日志文件。您可以通过查看 /var/log/nginx/ 目录下的日志文件来验证轮转是否正常进行。

0