定期删除OpenResty/Nginx大日志文件的方法

 更新时间:2024年05月22日 09:00:09   作者:马里嗷  
这篇文章主要介绍了定期删除OpenResty/Nginx大日志文件的方法,文中通过代码示例给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

1. 安装 logrotate 工具

首先,确保系统上已经安装了 logrotate。在大多数 Linux 发行版上,可以使用包管理器来安装:

sudo apt-get install logrotate # 对于 Debian/Ubuntu 
sudo yum install logrotate # 对于 CentOS/RHEL

2. 配置 logrotate

创建或编辑 logrotate 配置文件。例如,我们可以为 Nginx 日志创建一个自定义的 logrotate 配置文件 /etc/logrotate.d/nginx

/var/log/nginx/access.log /var/log/nginx/error.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

这个配置文件的解释如下:

  • /var/log/nginx/access.log /var/log/nginx/error.log:指定要轮换的日志文件(可以包括多个文件)。
  • daily:每天轮换日志文件。
  • rotate 14:保留 14 天的日志文件。
  • compress:压缩旧的日志文件。
  • delaycompress:延迟一个轮换周期再压缩上一个轮换的日志文件。
  • missingok:如果日志文件不存在,不会报错。
  • notifempty:如果日志文件为空,不会轮换。
  • create 0640 www-data adm:创建新的日志文件,并设置权限和所有者。
  • sharedscripts:确保 postrotate 脚本只运行一次,而不是为每个被处理的日志文件运行一次。
  • postrotate:在日志文件轮换后运行的脚本,kill -USR1 命令通知 Nginx 重新打开日志文件。
markdown
复制代码
# 定期删除 OpenResty/Nginx 大日志文件的方法

如果你的日志文件是一个大的单一日志文件,而不是多个文件的形式,你可以使用 `logrotate` 工具来管理和定期删除旧的日志内容。以下是详细的步骤:

## 1. 安装 logrotate 工具

首先,确保系统上已经安装了 `logrotate`。在大多数 Linux 发行版上,可以使用包管理器来安装:

```bash
sudo apt-get install logrotate   # 对于 Debian/Ubuntu
sudo yum install logrotate       # 对于 CentOS/RHEL

3. 配置 logrotate

创建或编辑 logrotate 配置文件。例如,我们可以为 Nginx 日志创建一个自定义的 logrotate 配置文件 /etc/logrotate.d/nginx

bash
复制代码
/var/log/nginx/access.log /var/log/nginx/error.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

这个配置文件的解释如下:

  • /var/log/nginx/access.log /var/log/nginx/error.log:指定要轮换的日志文件(可以包括多个文件)。
  • daily:每天轮换日志文件。
  • rotate 14:保留 14 天的日志文件。
  • compress:压缩旧的日志文件。
  • delaycompress:延迟一个轮换周期再压缩上一个轮换的日志文件。
  • missingok:如果日志文件不存在,不会报错。
  • notifempty:如果日志文件为空,不会轮换。
  • create 0640 www-data adm:创建新的日志文件,并设置权限和所有者。
  • sharedscripts:确保 postrotate 脚本只运行一次,而不是为每个被处理的日志文件运行一次。
  • postrotate:在日志文件轮换后运行的脚本,kill -USR1 命令通知 Nginx 重新打开日志文件。

4. 测试 logrotate 配置

在应用配置之前,可以使用 logrotate-d 参数来测试配置文件,而不实际执行日志轮换:

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

如果配置没有问题,可以手动触发一次日志轮换来验证效果:

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

5. 确保定期运行 logrotate

logrotate 通常由系统的 Cron 任务定期运行。可以通过查看 /etc/cron.daily/logrotate 来确认这一点:

cat /etc/cron.daily/logrotate

这个文件通常会包含一条执行 logrotate 的命令,例如:

/usr/sbin/logrotate /etc/logrotate.conf

通过这种方式,即使你的日志文件是一个大的单一文件,logrotate 也可以帮助你自动管理和定期删除旧的日志内容,确保日志文件不会无限制地增长。

以上就是定期删除OpenResty/Nginx大日志文件的方法的详细内容,更多关于删除OpenResty/Nginx日志文件的资料请关注脚本之家其它相关文章!

相关文章

  • Nginx解决转发地址时跨域的问题

    Nginx解决转发地址时跨域的问题

    这篇文章主要介绍了Nginx实现转发地址解决跨域问题的方法,文中介绍的很详细,对大家的学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 一文了解nginx中的signal处理机制

    一文了解nginx中的signal处理机制

    nginx利用信号处理机制,可以捕获和处理各种信号,本文主要介绍了nginx中的signal处理机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • Nginx手动编译、安装超详细教程

    Nginx手动编译、安装超详细教程

    Nginx安装除了编译以外,我们还可以直接用操作系统上自带的工具比如说yum、apt-get直接安装,这篇文章主要介绍了Nginx手动编译、安装超超详解,需要的朋友可以参考下
    2023-09-09
  • nginx+lua+redis防刷和限流的实现

    nginx+lua+redis防刷和限流的实现

    本文将介绍如何使用nginx lua redis实现防刷和限流,首先,我们将了解防刷和限流的基本概念和必要性,然后,我们将详细介绍如何使用nginx lua redis实现防刷和限流,感兴趣的可以了解一下
    2023-09-09
  • 如何将 Nginx 配置为Web服务器的方法

    如何将 Nginx 配置为Web服务器的方法

    本篇文章主要介绍了如何将 Nginx 配置为Web服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Nginx中使用gzip_http_version解决CDN只支持http 1.0问题

    Nginx中使用gzip_http_version解决CDN只支持http 1.0问题

    这篇文章主要介绍了Nginx中使用gzip_http_version解决CDN只支持http 1.0问题,问题原因是在Header信息中看到Transfer-Encoding: chunked,使用本文方法就可以解决这个问题,需要的朋友可以参考下
    2014-09-09
  • 当Nginx所在服务器的磁盘空间满时的影响以及如何避免这一问题

    当Nginx所在服务器的磁盘空间满时的影响以及如何避免这一问题

    Nginx所在服务器的磁盘空间满了,会导致日志无法写入、缓存失效、反向代理请求异常等问题,严重时可能导致服务不可用,这篇文章主要介绍了当Nginx所在服务器的磁盘空间满时的影响以及如何避免这一问题,需要的朋友可以参考下
    2024-12-12
  • Nginx加固的几种方式(控制超时时间&限制客户端下载速度&并发连接数)

    Nginx加固的几种方式(控制超时时间&限制客户端下载速度&并发连接数)

    本文主要介绍了Nginx加固的几种方式,包括控制超时时间,限制客户端下载速度,并发连接数这几种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • nginx提示502 页面的解决方法

    nginx提示502 页面的解决方法

    如果部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间
    2013-02-02
  • nginx限制ip访问频率的实现示例

    nginx限制ip访问频率的实现示例

    Nginx通过limit_conn_zone 和 limit_req_zone对同一个IP地址进行限速限流,本文主要介绍了nginx限制ip访问频率的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论