Confd生成nginx配置示例
Confd生成nginx配置示例
官方网站:
环境:
CentOS7.2
go-1.7
编译安装
https://github.com/kelseyhightower/confd
https://github.com/kelseyhightower/confd/blob/master/docs/quick-start-guide.md
https://github.com/kelseyhightower/confd/blob/master/docs/quick-start-guide.md
1.go(>=1.6)环境
2.下载并安装
$ mkdir -p $GOPATH/src/github.com/kelseyhightower
$ git clone https://github.com/kelseyhightower/confd.git $GOPATH/src/github.com/kelseyhightower/confd
$ cd $GOPATH/src/github.com/kelseyhightower/confd
$ ./build
curl -sSL https://github.com/kelseyhightower/confd/releases/download/v0.11.0/confd-0.11.0-linux-amd64 -o
/usr/local/sbin/confd
chmod +x /usr/local/sbin/confd
管理nginx配置
1.挑选后端
以consol为例
curl -X PUT -d 'myapp'
http://localhost:8500/v1/kv/myapp/subdomain
curl -X PUT -d '10.0.1.100:80'
http://localhost:8500/v1/kv/myapp/upstream/app1
curl -X PUT -d '10.0.1.101:80'
http://localhost:8500/v1/kv/myapp/upstream/app2
curl -X PUT -d 'yourapp'
http://localhost:8500/v1/kv/yourapp/subdomain
curl -X PUT -d '10.0.1.102:80'
http://localhost:8500/v1/kv/yourapp/upstream/app1
curl -X PUT -d '10.0.1.103:80'
http://localhost:8500/v1/kv/yourapp/upstream/app2
2.创建confdir
mkdir -p /etc/confd/{conf.d,templates}
3.创建模板配置文件
cat >/etc/confd/conf.d/myapp-nginx.toml
<<EOF
[template]
prefix = "/myapp"
src = "nginx.tmpl"
dest =
"/tmp/myapp.conf"
owner = "nginx"
mode = "0644"
keys = [
]
EOF
cat >/etc/confd/conf.d/yourapp-nginx.toml
<<EOF
[template]
prefix =
"/yourapp"
src = "nginx.tmpl"
dest =
"/tmp/yourapp.conf"
owner = "nginx"
mode = "0644"
keys = [
]
EOF
4.创建模板
cat >/etc/confd/templates/nginx.tmpl
<<'EOF'
upstream {{getv "/subdomain"}}
{
{{range getvs
"/upstream/*"}}
{{end}}
}
server {
}
EOF
5.生成模板
confd -onetime -backend consul -node 127.0.0.1:8500