Nginx 发布 Docker 运行日志的方法
背景
公司这边想进行容器化负载均衡部署.
脚本很简单, 已经实现了, 但是发现我这边没有ELK也没有LOKI
又不太像切入到容器内部进行 获取日志信息.
所以我这边想了一个别的招来动态刷新日志.
思路
动态获取容器的日志目录
然后将目录动态替换到 nginx的autoindex的路径下.
然后重启一下nginx, 使用新的配置文件进行加载日志进行展示.
获取容器日志目录
这边部署的镜像是一直一个相同的名字. 跟端口号绑定: 所以我这边优先获取一个镜像的目录
docker inspect --format='{{.LogPath}}' app5201 |xargs dirname
命令比较简单, 主要是json格式的获取信息内容.
注意注意的是 一开始获取出来的是 log的文件, 通过 dirname 的方式获取到
文件具体的目录进行替换.
修改nginx配置文件以及启动
sed "s#applog#`docker inspect --format='{{.LogPath}}' aoo5201 |xargs dirname`#" /opt/nginx/applog.conf >/opt/nginx/appdockerlog.conf
cd /opt/nginx/
lsof -i:8080|awk '{print $2}' |xargs kill -9
./nginx -c appdockerlog.conf
简单讲解
1. sed 进行变量替换的时候 建议使用 soft quote, 这样的话就可以直接识别变量了.
需要注意的是 变量替换时不建议使用 / 进行切分了
建议换用 # 类似的符号进行切分, 因为 目录里面带 / 会导致命令失败.
可以先定义变量, 可以在 ## 之间 添加`` 反引号包裹的命令来实现.
2. 注意sed -i 会修改当前文件, 会导致丢失模板, 所以建议从模板文件修改到其他目录里面去.
这样命令可以重复使用.
3. 监控 端口, 停止 nginx的服务
4. 重启nginx服务
nginx 文件预览的模板
worker_processes 1;
user root;
events {
worker_connections 1024;
}
http {
include mime.types;
sendfile on;
charset utf8;
gzip on;
server {
listen 8080;
server_name localhost;
location / {
root applog/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}
}
nginx配置文件说明
建议增加 user root;的处理
容器的目录权限 nobody可能不好获取, 贸然修改容器的目录权限不太好.
建议在被替换的目录的末尾添加一个 / 这样的话 替换完 dirname 之后就正常可用了.
Nginx 发布 Docker 运行日志的方法的更多相关文章
- nginx发布的nginScript
nginx发布的nginScript 背景 2015年9月,nginx宣布支持类JavaScript语言.这意味着开发者可以更轻松.自由的控制全球最优秀的HTTP及反向代理服务器,并在此之上可以衍生出 ...
- Nginx服务器的Websockets配置方法
这篇文章主要介绍了简介Nginx服务器的Websockets配置方法,是使用Nginx服务器的网管的必备知识XD~需要的朋友可以参考下 Nginx 1.3.13 已经发布了,该版本支持 Connect ...
- [DEBUG] QAT Nginx for docker 部署时"--with-ld-opt"出错
layout: post title: [DEBUG] QAT Nginx for docker 部署时"--with-ld-opt"出错 subtitle: 记一次debug经历 ...
- SQL2005删除复制数据库的发布与订阅的方法(转载)
SQL2005删除复制数据库的发布与订阅的方法 --在测试环境中恢复从正式数据库服务器 上备份下来的bak文件后,正式环境里数据库复制的发布.订阅也被带进来了,结果恢复的数据库无法更改表结构,直接删除 ...
- nginx多域名的配置方法
方法一:多个.conf方法 1. 到/usr/local/nginx/ 新建一个目录 vhosts 并创建两个conf文件,如:wodejj.com.conf ,xiaobing.com.conf. ...
- nginx 常用的 URL 重写方法
转自:http://www.jbxue.com/article/4727.html Nginx中一些常用的URL 重写方法介绍,有需要的朋友可以参考下.url重写应该不陌生,不管是SEO URL 伪静 ...
- 如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理
这篇文章介绍一下,如何使用VS2017给asp.net core添加容器支持,并发布镜像到私有docker hub,然后用chart管理容器镜像的操作流程. 话不多说,just do it. 新建项目 ...
- 解决nginx发布网站跨目录访问
解决nginx发布网站跨目录访问(thinkphp5+lnmp) 到:usr/local/nginx/conf/vim fastcgi.cof 把最后一行加上井号#注释掉保存重启 restart 参考 ...
- nginx日志过滤相同IP方法
nginx日志过滤相同IP方法分析nginx日志的时候,统计ip怎么过滤重复的?awk '{print $2}' nginx.log |sort -rn |uniq -c |sort -rn |hea ...
- nginx 官方docker镜像使用教程
最近在看nignx,在本地虚拟机使用docker nginx镜像搭建了nginx+php环境 整理的教程如下: 拉取nginx镜像docker pull nginx 创建一个容器,并挂载本地目录doc ...
随机推荐
- 教你如何优雅的改写“if-else”
摘要:这些场景,你是怎么写的代码? if-else,这是个再正常不过的coding习惯,当我们代码量小的时候用来做条件判断是再简单不过的了.但对于优秀程序员来说,这却不是好代码. 不信你往下看- 1. ...
- Python图像处理丨基于K-Means聚类的图像区域分割
摘要:本篇文章主要讲解基于理论的图像分割方法,通过K-Means聚类算法实现图像分割或颜色分层处理. 本文分享自华为云社区<[Python图像处理] 十九.图像分割之基于K-Means聚类的区域 ...
- CG行业云渲染服务的演进之路
摘要:影视动画.特效制作等行业渲染需求量增多,4K/6K以及各高分辨率会陆续成为主流,本地算力与存储资源已无法满足现有任务量.而随着大环境的演变,CG行业发展已进入发展快车道.来自赞奇科技的CEO金伟 ...
- VEGA:诺亚AutoML高性能开源算法集简介
摘要:VEGA是华为诺亚方舟实验室自研的全流程AutoML算法集合,提供架构搜索.超参优化.数据增强.模型压缩等全流程机器学习自动化基础能力. 本文分享自华为云社区<VEGA:诺亚AutoML高 ...
- 云小课 | SA基线检查—给云服务的一次全面“体检”
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 华为云态势感知( ...
- 一文讲述数仓组件SysCache
摘要:SysCache是ThreadLocal结构,每个线程都具有各自的SysCache,其中存储的缓存信息由执行的业务决定. 本文分享自华为云社区<GaussDB(DWS)CBB组件之SysC ...
- FOR ALL ENTRIES IN 与 INNER JOIN 内表
1.区别 FOR ALL ENTRIES IN 与 INNER JOIN 内表,目的都是通过内表找数据库表与之对应的数据,但是有区别. 1.1.写法 FOR ALL ENTRIES IN " ...
- 图解 Promise 实现原理(一)—— 基础实现
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/UNzYgpnKzmW6bAapYxnXRQ作者:孔垂亮 很多同学在学习 Promise 时,知 ...
- 单线程 Redis 如此快的 4 个原因
本文翻译自国外论坛 medium,原文地址:https://levelup.gitconnected.com/4-reasons-why-single-threaded-redis-is-so-fas ...
- HP笔记本(Inspiron 7472) 视频时无摄像头的处理方案
需要视频考试的前一天,测试摄像头时发现微信视频时竟然摄像头打不开.比较焦急,尝试了好几种办法,并在2小时内找出解决方案. 一.查看设备是否被禁用 我的电脑->右键->设备管理器-> ...