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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY