Consul-template配置文件

文件结构:

 

 nginx.conf.ctmpl2

复制代码
{{range services}}  {{$name := .Name}} {{$service := service .Name}}

upstream {{$name}} {
  zone upstream-{{$name}} 64k;
  {{range $service}}server {{.Address}}:{{.Port}} max_fails=3 fail_timeout=60 weight=1;
  {{else}}server 127.0.0.1:65535 down; # force a 502{{end}}
} 
{{end}}

server {
  listen 80 default_server;
  server_name 127.0.0.1;

{{range services}} {{$name := .Name}} {{$namelower := .Name|toLower}}
  location /{{$name | replaceAll "_" "/" }}/ {
    proxy_pass http://{{$name}}/;
  }
{{if ne $name $namelower}}
location /{{$name | toLower | replaceAll "_" "/" }}/ {
    proxy_pass http://{{$name}}/;
  }
{{end}}
{{end}}
}
复制代码

nginx.hc1

复制代码
consul {
  address = "127.0.0.1:8500"
}

template {
  source = "nginx.conf.ctmpl2"
  destination = "/etc/nginx/conf.d/consul-template.conf"
  command = "./start_nginx.sh"
}
复制代码

start_nginx.sh

复制代码
#!/bin/sh
ps -ef |grep nginx |grep -v grep |grep -v .sh
if [ $? -ne 0 ]; then
 nginx;
 echo "nginx start"
else
 nginx -s reload;
 echo "nginx reload"
fi
复制代码

 参考文档: 通过 Consul-Template 实现动态配置Nginx负载服务-阿里云开发者社区 (aliyun.com)

posted @   唐磊(Jason)  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示