大佬教程收集整理的这篇文章主要介绍了滚动 docker 中的 nginx 日志,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/92f4eb1dfcc88c8682948ca28e9fb341.png" >
Ting Log-filesenamed first. After that USR1 signal should be sent to the master process. The master process will then re-open all currently open log files and assign them an unprivileged user under which the worker processes are running,as an owner. After successful re-opening,the master process closes all open files and sends the message to worker process to ask them to re-open files. Worker processes also open new files and close old files right away. As a result,old files are almost immediately available for post processing,such as compression.
你的系统中已经安装好了 docker,这里我们直接运行一个 nginx 容器:
<span style="color: #0000ff">mv /var/log/nginx/access.log /var/log/nginx/<span style="color: #000000">access.${dateString}.log
<span style="color: #0000ff">mv /var/log/nginx/error.log /var/log/nginx/<span style="color: #000000">error.${dateString}.log
<span style="color: #0000ff">kill -USR1 <span style="color: #0000ff">cat</span> /var/run/nginx.pid
String 函数取当前的时间并格式化为字符串,比如 "201807241310",笔者比较喜欢用日期和时间来命名文件。注意这里通过 TZ='Asia/Chongqing' 指定了时区,因为默认情况下格式化的是 UTC 时间,用起来怪怪的(要实时脑补 +8 小时)。命令为 rotatelog.sh 文件添加可执行权限并复制到 $(pwd)/logs/nginx 目录下:
所以需要在容器中给 nginx master 进程发送 USR1 信号。因此我们需要通过 docker exec 命令在 mynginx 容器中执行 rotatelog.sh 脚本:
title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/b7f3bab14375ac899568cb398e08a5dd.png" >
title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/3f394224b70a1a4696f324214535c651.png" >
title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/63f5e64eef4373f421db6f87f657a1e4.png" >
title="滚动 docker 中的 nginx 日志" alt="滚动 docker 中的 nginx 日志" src="https://cn.js-code.com/res/2019/02-09/09/cae729c9f3f17dcc031a465f854eab5c.png" >
》一文中介绍了容器中信号的捕获问题,感兴趣的朋友可以去看看。在那篇文章中我们介绍了 docker 向容器中进程发送信号的 kill 命令。我们可以通过命令:
以上是大佬教程为你收集整理的滚动 docker 中的 nginx 日志全部内容,希望文章能够帮你解决滚动 docker 中的 nginx 日志所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。