Confd生成nginx配置示例

Confd生成nginx配置示例

官方网站:


环境:
CentOS7.2
go-1.7


编译安装
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

 二进制包
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 = [
  "/subdomain",
  "/upstream",
]
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 = [
  "/subdomain",
  "/upstream",
]
EOF
4.创建模板
cat >/etc/confd/templates/nginx.tmpl <<'EOF'
upstream {{getv "/subdomain"}} {
{{range getvs "/upstream/*"}}
    server {{.}};
{{end}}
}

server {
    server_name  {{getv "/subdomain"}}.example.com;
    location / {
        proxy_pass        http://{{getv "/subdomain"}};
        proxy_redirect    off;
        proxy_set_header  Host             $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
   }
}
EOF
5.生成模板
confd -onetime -backend consul -node 127.0.0.1:8500
Confd生成nginx配置示例


posted @ 2016-10-18 09:41  李庆喜  阅读(598)  评论(0编辑  收藏  举报