温馨提示×

CentOS Nginx日志轮转如何设置

小樊
45
2025-12-17 15:57:53
栏目: 智能运维

在 CentOS 系统中,Nginx 日志轮转通常是通过 logrotate 工具来实现的。默认情况下,logrotate 配置文件已经包含了针对 Nginx 的配置,你只需要确保 /etc/logrotate.d/nginx 文件存在并正确配置即可。

以下是一个基本的 Nginx logrotate 配置示例:

/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
}

这个配置的含义如下:

  1. 每天轮转日志(daily)
  2. 如果日志文件丢失,不要报错(missingok)
  3. 保留最近 7 天的日志文件(rotate 7)
  4. 轮转后的日志文件进行压缩(compress)
  5. 如果日志文件为空,则不进行轮转(notifempty)
  6. 创建新的日志文件,权限为 0640,属主为 nginx,属组为 adm(create 0640 nginx adm)
  7. 在轮转前后执行的脚本(postrotate 和 endscript 之间的部分)

要应用这个配置,请按照以下步骤操作:

  1. 确保 /etc/logrotate.d/nginx 文件存在。如果不存在,请创建一个新文件,并将上述配置粘贴进去。
  2. 如果需要修改配置,可以用文本编辑器打开 /etc/logrotate.d/nginx 文件,然后进行修改。
  3. 保存并关闭文件。
  4. logrotate 会自动按照配置进行日志轮转。你可以通过运行 logrotate -f /etc/logrotate.conf 命令来强制立即执行日志轮转。

注意:确保 Nginx 进程有足够的权限访问和操作日志文件。如果遇到权限问题,请检查 Nginx 配置文件中的 error_logaccess_log 指令是否正确设置了日志文件的路径和权限。

0