centos

如何设置nginx日志轮转周期

小樊
45
2025-11-03 18:36:43
栏目: 编程语言

要设置 Nginx 日志轮转周期,您需要使用 logrotate 工具。以下是在 Linux 系统中设置 Nginx 日志轮转周期的步骤:

  1. 确保 logrotate 已经安装在您的系统上。大多数 Linux 发行版默认已经安装了 logrotate。如果没有安装,您可以使用以下命令安装:

    对于基于 Debian 的系统(如 Ubuntu):

    sudo apt-get update
    sudo apt-get install logrotate
    

    对于基于 RHEL 的系统(如 CentOS):

    sudo yum install logrotate
    
  2. 创建一个新的 logrotate 配置文件,或者在现有的配置文件中添加 Nginx 日志轮转设置。通常,logrotate 配置文件位于 /etc/logrotate.d/ 目录下。您可以创建一个新的配置文件,例如 nginx,并使用以下命令打开它:

    sudo nano /etc/logrotate.d/nginx
    
  3. 将以下内容添加到新创建的配置文件中,根据您的需求自定义设置:

    /var/log/nginx/*.log {
        daily
        missingok
        rotate 7
        compress
        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:每天轮转日志。
    • missingok:如果日志文件丢失,不要报错。
    • rotate 7:保留 7 天的日志文件。
    • compress:压缩旧的日志文件。
    • notifempty:如果日志文件为空,则不进行轮转。
    • create 0640 www-data adm:创建新的日志文件,权限为 0640,属主为 www-data,属组为 adm。
    • sharedscripts:如果有多个日志文件,只执行一次 postrotate 脚本。
    • postrotateendscript 之间的脚本会在日志轮转后执行。这里我们发送 USR1 信号给 Nginx 主进程,通知它重新打开日志文件。
  4. 保存并关闭配置文件。

  5. 测试 logrotate 配置是否正确。运行以下命令:

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

    如果一切正常,您应该会看到 logrotate 处理 Nginx 日志文件的输出。

现在,Nginx 日志轮转周期已经设置好了。logrotate 将根据您在配置文件中设置的参数自动轮转日志。

0
看了该问题的人还看了