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 ...
随机推荐
- 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界
摘要:从年初的不知不觉进入AI学习的道路,到认识并熟练使用ModelArts平台.虽然只有短短的半年,但这半年的探索学习,让丁一超看清了未来的路在何方. 从招聘网站上输入"人工智能工程技术人 ...
- 云小课 | 玩转HiLens Studio之手机实时视频流调试代码
摘要:在开发技能过程中,搭配视频流调试技能是非常必要的环节,也是检验技能效果的重要环节.HiLens Studio推出使用手机实时视频流调试代码的功能,以手机摄像头实时的视频流作为技能输入,查看技能输 ...
- DTSE Tech Talk丨第2期:1小时深度解读SaaS应用系统设计
摘要:介绍在SaaS场景下如何技术选型,SaaS架构设计中关键的技术点等内容. 本文分享自华为云社区<DTSE Tech Talk丨第2期:1小时深度解读SaaS应用系统设计>,作者: 华 ...
- GaussDB(for Influx)与开源企业版性能对比
摘要:相比于企业版InfluxDB,GaussDB(for Influx)能为客户提供更高的写入能力.更稳定的查询能力.更高的数据压缩率,高效满足各大时序应用场景需求. 本文分享自华为云社区<华 ...
- 源码详解数据结构Linked List
摘要:java.util.LinkedList 是 Java 集合框架中的成员之一,底层是基于双向链表实现,集合容量可动态变化的. 本文分享自华为云社区<LinkedList 源码分析>, ...
- 智定义、易调整,火山引擎DataLeap助力企业轻松实现全流程值班管理
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,火山引擎大数据研发治理套件DataLeap全新上线值班管理模块,企业可通过该模块体系化智能化创建值班计 ...
- Solon 拉取 maven 包很慢或拉不了,怎么办?
注意:如果在 IDEA 设置里指定了 settings.xml,下面两个方案可能会失效.(或者直接拿"腾讯" 的镜像仓库地址,按自己的习惯配置) 1.可以在项目的 pom.xml ...
- 初探: 通过pyo3用rust为python写扩展加速
众所周知,python性能比较差,尤其在计算密集型的任务当中,所以机器学习领域的算法开发,大多是将python做胶水来用,他们会在项目中写大量的C/C++代码然后编译为so动态文件供python加载使 ...
- Sunshine + Moonlight 纯软件实现全平台设备作 Linux 副屏
目录 初识 Moonlight 部署 Sunshine 服务端与 Moonlight 客户端 创建虚拟显示屏 写一个创建屏幕的脚本(可选) 将副屏进行串流 已知问题 最近,我想要通过视频学习一些技术知 ...
- BBS项目(二):首页导航条搭建 修改密码功能 首页数据展示 个人站点页面
目录 首页导航条搭建 session判断用户是否登录 更换验证码 导航条更多功能 退出系统 修改密码前端页面 使用大模态框 编写模态框 前端表单编写 修改密码后端逻辑 接受参数 验证参数 修改密码 首 ...