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 ...
随机推荐
- 开发的必杀技:Git 的分支管理
摘要:作为一名码农,Git的使用就像家常便饭,时时刻刻都要用到,那么Git分支管理也是必须要掌握的. Git 分支管理 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离 ...
- 提升80%上云集成效率, TA是如何做到的
摘要:基于华为云开天aPaaS,提升80%上云集成效率,降低50%集成成本 没有充足资金,没有足够的项目规划和过渡时间,也没有经验丰富的IT团队支持,中小企业的上云路可谓是困难重重.如何帮助企业高效上 ...
- 云小课 | 华为云KYON之VPC终端节点
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:在华为云KYON( ...
- 电商流量分析怎么做?试试这款数据工具 DataLeap!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为成熟的电商模式,货架场景可以让商家以更低的门槛入驻,让消费者完成更高销量的购买和复购. 在这一场景下,运营人员 ...
- 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)
Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...
- Solon 开发进阶,三、常用配置说明
Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 应用主配置文件为: resources/app.yml( 或 app.propertie ...
- 数据工程师必备的8项技能,不要只知道Python!
欢迎关注公众号:机器学习算法与Python实战(ID:tjxj666) 原作:Mohammed M Jubapu 译者:机器学习算法与Python实战(公众号ID:tjxj666) 英文:https: ...
- 详解 SSL(一):网址栏的小绿锁有什么意义?
随着互联网的飞速发展,用户信息泄漏.数据泄露等安全问题的事件频繁发生.这一切不一定是网站的问题,有时候可能是自己不经意间泄露了自己的信息.例如钓鱼网站就是日常生活中比较常见的,钓鱼网站和真实网站差别细 ...
- CMake + Protobuf 自动生成 cpp 文件(pb.h, pb.cc)
[Protoc]VS2019 (VS平台) 使用 CMake 编译安装.使用 Protobuf 库 本文介绍在 macOS 系统下 cmake 和 protobuf 一起使用的一种方式--使用 cma ...
- C++正则表达式的初步使用
正则表达式(Regular Expressions),又被称为regex.regexp 或 RE,是一种十分简便.灵活的文本处理工具.它可以用来精确地找出某文本中匹配某种指定规则的内容.从C++11开 ...