Etcd+confd实现动态修改nginx文件

2017-08-22  本文已影响0人  264e6feedbe7

上一篇已经安装并配置了ETCD集群。

一、介绍

confd is a lightweight configuration management tool focused on:
keeping local configuration files up-to-date using data stored in etcd, consul, dynamodb, redis, vault, zookeeper or env vars and processing template resources.
reloading applications to pick up new config file changes

二、安装

采用二进制安装,下载二进制文件

wget https://github.com/kelseyhightower/confd/releases/download/v0.13.0/confd-0.13.0-linux-amd64

添加执行权限,并移动到/usr/local/bin目录下

chmod +x confd-0.13.0-linux-amd64
mv confd-0.13.0-linux-amd64 /usr/local/bin/confd

三、配置

etcdctl set /dev/nginxdev zmz
etcdctl set /dev/upstream/app1 "10.10.149.229:80"
etcdctl set /dev/upstream/app2 "10.10.152.165:80"
mkdir /etc/confd/{conf.d,templates}
[template]
src = "nginx.tmpl"
dest = "/etc/nginx/conf.d/zmz.conf"
owner = "root"
mode = "0644"
keys = [
    "/dev/nginxdev",
    "/dev/upstream",
]
check_cmd = "nginx -t -c {{ .src }}"
reload_cmd = "systemctl reload nginx"
upstream {{getv "/dev/nginxdev"}} {
{{range getvs "/dev/upstream/*"}}
    server {{.}};
{{end}}
}
server {
    server_name  {{getv "/dev/nginxdev"}}.example.com;
    location / {
        proxy_pass        http://{{getv "/dev/nginxdev"}};
        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;
   }
}
backend = "etcd"
confdir = "/etc/confd"
log-level = "debug"
interval = 60
nodes = [
   "http://10.10.149.229:4001",
   "http://10.10.152.165:4001",
   "http://10.10.160.64:4001",
]
noop = false
#prefix = "/production"

四、启动confd 并验证

五、参考文档

上一篇下一篇

猜你喜欢

热点阅读