docker compose-te'mplate

在consul基础上搭建compose-temlate服务(consul在上篇博客中有介绍)
compose-template简介
compose-template是一个守护进程,用于实时查询consul集群信息
并且运维人员可以在consul服务器上,定制任意的模板,生成配置文件
compose可以查询consul中的服务目录、key、key-values等
这种强大的抽象功能和查询语言模板使得consul-template特别适合动态的创建配置文件,也就是自动化增加服务

我们在consul服务上安装一个nginx服务,用作负载均衡器,利用consul的服务发现功能和compose-template的动态生成配置文件的功能,就可以实现当我们在后端服务器上增加一个容器服务时,consul能够及时发现,compose-template及时在nginx里生成该服务的地址和端口号放入地址池里面,这样nginx作为代理服务器,就可以调用了

///创建/在consul目录下操作,建立template nginx模板文件
vim /root/consul/nginx-ctmpl
upstream http_backend {
  {{range service "nginx"}}
  server {{.Address}}:{{.Port}};
  {{end}}
}

server {
   listen 1216;
   server_name localhost 192.168.175.148;
   access_log /var/log/nginx/kgc.cn-access.log
   index index.html index.php;
   location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://http_backend;
 }
}



/在consul上安装nginx服务
yum install -y gcc pcre-devel zlib-devel
tar zxvf nginx-1.12.2.tar.gz -C /opt
cd /opt/nginx-1.12.2/
./configure --prefix=/usr/local/nginx
make && make install
vim /usr/local/nginx/conf/nginx.conf
http {
    include       mime.types;
    include     vhost/*.conf;     ///添加虚拟机主机的配置文件
    default_type  application/octet-stream;

//创建虚拟主机的配置文件
[root@promote nginx-1.12.2]# mkdir /usr/local/nginx/conf/vhost
[root@promote nginx-1.12.2]# mkdir /var/log/nginx     ///创建虚拟主机的日志文件
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
/usr/local/nginx/sbin/nginx
上传consul-template_0.19.3_linux_amd64.zip到/root目录下
[root@promote ~]# unzip consul-template_0.19.3_linux_amd64.zip -d /usr/bin    ///解压至/usr/bin目录下
///进入监控状态
consul-template -consul-addr 192.168.175.148:8500 \-template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \--log-level=info

利用nginx.ctmpl自动生成nginx虚拟主机的配置文件
[root@promote ~]# ls /usr/local/nginx/conf/vhost/
[root@promote ~]# cat /usr/local/nginx/conf/vhost/kgc.conf 
upstream http_backend {
  
  server 192.168.175.152:81;
  
  server 192.168.175.152:82;
  
  server 192.168.175.152:83;
  
}
server {
   listen 1216;
   server_name localhost 192.168.175.148;
   access_log /var/log/nginx/kgc.cn-access.log
   index index.html index.php;
   location / {
 proxy_set_header HOST $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Client-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_pass http://http_backend;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值