Consul-template 是 HashiCorp 基于 Consul 所提供的可扩展的工具,通过监听 Consul中的数据变化,动态地修改一些配置文件中地模板。常用于在 Nginx、HAProxy上动态配置健康状态下的客户端反向代理信息。Consul-template 和 nginx 必须安装在同一台机器上,因为 Consul-template 需要动态修改 nginx 的配置文件 nginx.conf,...
2、consul-template动态维护Nginx里面的server 3、consul-template监控Consul集群 4、每个服务配置Consul做服务发现 5、最终目的,当服务(Consul)Down机时;Nginx中的Server被Consul-template实时删除,并重新加载(Nginx -s reload)配置文件 二、主要用到的工具 1、功能实现:Nginx、 Consul、 Consul-template 2、配合工具:...
官方及网上大部分的启动nginx-consul-template容器最后ENTRYPOINT都为nginx -sreload,但是因为在重制镜像的时候会将nginx镜像中ENTRYPOINT的nginx -g 'daemonoff'给覆盖掉,导致容器在启动的时候nginx没有启动,而nginx -s reload会去读/run/nginx.pid,如果没有则reload失败,所以这里新建了一个nginx启动及重启的脚本。 #...
wget https://releases.hashicorp.com/consul/1.5.0/consul_1.5.0_linux_amd64.zip 1. 2.解压consul_1.5.0_linux_amd64.zip unzip consul_1.5.0_linux_amd64.zip 3. 执行以下 ./consul 出现以下信息就说明安装成功 root@brian-System-Product-Name:/usr/local# ./consul usage: consul [--version] [-...
consul-template 是 Consul 的一个守护程序,使用 consul-template 可以方便快速的实现对 Consul Key/Value 存储系统的访问,可以从 KV 系统中读取数据、监视变动、同步本地文件;还可以在执行模板更新的同时,执行本地系统命令,比如常见的就是在同步数据到本地模板文件后,生成 Nginx 配置文件,并执行 nginx -s reload ...
Consul Template 提供一个方便的方式从Consul服务获取数据通过consul-template的后台程序保存到文件系统,这个后台进程监控Consul中数据的变化并更新任意数量的模板到文件系统。模板更新完成后consul-template也可以触发相关的指令或者脚本,此处通过简单的实践动态更新Nginx的upstream server并且触发reloadnginx服务。当然对于小规模下...
我们可以通过consul注册我们的应用,然后通过consul-template监控服务的情况,一旦服务有变化及时更新nginx配置,从而达到动态扩容的效果。 下面就具体实现一下。 首先用golang 写一个web服务。 packagemainimport("fmt""github.com/gin-gonic/gin"api"github.com/hashicorp/consul/api""os""strconv")funcmain(){id,_...
在服务发现和注册的基础上,本文将引入 Nginx反向代理服务器和 Consul-template[1] 组件,实现动态的服务负载均衡。
Consul-template 用于实时监测 Consul 中服务的状态,配合自身一个模板文件,生成 Nginx 的配置文件。 Nginx 使用自身的配置文件和第二步生成的配置文件,进行负载均衡。 Nginx安装 安装最新版 Nginx,保证 Nginx 版本在1.9.0以上 1.9.0 版本以上才支持 TCP 转发,据说不是默认安装了该模块,安装完成可以查询一下,如果有...
Consul-template订阅了Consul服务注册中心的服务消息,接收到Consul的消息推送,即Web Server服务节点状态发生改变。 Consul-template自动去修改和替换Nginx服务器下的nginx配置文件中的模板,并重新加载服务达到自动负载均衡的目的。 3. 环境准备 3.1. 系统环境