Docker + Nginx + Logrotate 日志管理与轮换实践

 更新时间:2026年05月01日 09:39:29   作者:青临的踩坑之路  
本文主要介绍了Docker + Nginx + Logrotate 日志管理与轮换实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

概述与背景

  • Docker 容器化环境中 Nginx 日志管理的挑战
  • Logrotate 的作用与必要性
  • 结合场景的实际需求(如日志切割、压缩、归档)

Docker 环境下的 Nginx 日志配置

  • Nginx 日志路径与 Docker 数据卷映射
volumes:
  - ./nginx/logs:/var/log/nginx

Logrotate 基础配置

在 /etc/logrotate.d/目录下 新增 nginx-web 这个文件可以随意命名

vim /etc/logrotate.d/nginx-web
  • Logrotate 核心配置参数说明
    daily                  # 指定日志轮换周期为每天(logrotate 每天执行一次轮换)。
    rotate 15              # 保留最近的 15 个轮换日志文件,超过 15 个的将被删除。
    compress               # 压缩旧的日志文件,以节省存储空间(默认使用 gzip 压缩)。
    missingok              # 如果日志文件丢失,不会报错。即使日志文件不存在,也不会阻止日志轮换。
    notifempty             # 如果日志文件为空,则不进行轮换。
    create 777 root root   # 创建新的日志文件时,设置权限为 777,并且设置拥有者为 root,用户组为 root。
    postrotate             # 在日志文件轮换之后执行的脚本。可以用来发送信号给服务来让其重新打开新的日志文件。
    docker kill --signal=USR1 nginx-web  # 向 nginx-web 的 Docker 容器发送 USR1 信号,让NGINX 重新打开日志文件。   
    endscript              # 结束 postrotate 脚本的定义。
}

nginx-web配置文件

/storage/docker/nginx/log/access.log 这个目录不用多介绍 nginx的日志文件全路径 error.log同理

/storage/docker/nginx/log/access.log {
    daily                  
    rotate 15               
    compress              
    missingok             
    notifempty            
    create 777 root root
    postrotate
        docker kill --signal=USR1 nginx-web
    endscript
}

/storage/docker/nginx/log/error.log {
    daily                  
    rotate 60               
    compress              
    missingok             
    notifempty            
    create 777 root root
    postrotate
        docker kill --signal=USR1 nginx-web
    endscript
} 

手动测试

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

测试结果正常

查看access.log是否正常

确认docker kill --signal=USR1 nginx-web命令是否生效
测试结果正常!!

配置定时任务 crontab

 crontab -e

添加 (@daily意思为每天0点执行)

@daily /usr/sbin/logrotate -f /etc/logrotate.d/nginx-web

到此这篇关于Docker + Nginx + Logrotate 日志管理与轮换实践的文章就介绍到这了,更多相关Docker Nginx Logrotate 日志管理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker安装RabbitMQ并安装延时队列插件

    Docker安装RabbitMQ并安装延时队列插件

    本文主要介绍了Docker安装RabbitMQ并安装延时队列插件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • docker中搭建overlay 网络实验环境

    docker中搭建overlay 网络实验环境

    这篇文章主要介绍了docker中搭建overlay 网络实验环境的相关资料,需要的朋友可以参考下
    2017-08-08
  • Docker 查看镜像信息的方法

    Docker 查看镜像信息的方法

    这篇文章主要介绍了Docker 查看镜像信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Docker使用过程中的一些注意事项

    Docker使用过程中的一些注意事项

    这篇文章主要为大家介绍了在使用Docker过程中的一些注意事项,就个人的一些经验分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • docker创建镜像并上传云端服务器的实现示例

    docker创建镜像并上传云端服务器的实现示例

    镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,本文介绍了如何使用Docker创建镜像,并将其上传到云端,感兴趣的可以了解一下
    2023-08-08
  • 如何在Docker中部署运行jar

    如何在Docker中部署运行jar

    这篇文章主要介绍了如何在Docker中部署运行jar问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 使用Docker部署Spring Boot的方法示例

    使用Docker部署Spring Boot的方法示例

    这篇文章主要介绍了使用Docker部署Spring Boot的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Docker运行镜像以及退出、删除容器的实现方式

    Docker运行镜像以及退出、删除容器的实现方式

    这篇文章主要介绍了Docker运行镜像以及退出、删除容器的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • 基于docker部署Jenkins的详细教程

    基于docker部署Jenkins的详细教程

    这篇文章主要介绍了基于docker部署Jenkins,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Docker 创建centos容器集群并实现远程登录功能

    Docker 创建centos容器集群并实现远程登录功能

    这篇文章主要介绍了Docker 创建centos容器集群并实现远程登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论