nginx+nginx-upsync-module实现配置动态更新

模块微博开源:https://github.com/weibocom/nginx-upsync-module#upsync

实现方案:

nginx+consul

nginx+etcd

Installation

wget 'http://nginx.org/download/nginx-1.8.0.tar.gz'
tar -xzvf nginx-1.8.0.tar.gz
cd nginx-1.8.0/

添加upsync,upstream-check模块

./configure --add-module=/path/to/nginx-upstream-check-module --add-module=/path/to/nginx-upsync-module
make
make install

nginx配置

 upstream test {
        server 127.0.0.1:28081 down;
        upsync 127.0.0.1:8500/v1/kv/upstreams/test/ upsync_timeout=6m upsync_interval=500ms upsync_type=consul strong_dependency=off;
        upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;

        include /usr/local/nginx/conf/servers/servers_test.conf;
    }    

  

 

动态添加,删除节点

#add
curl -X PUT http://$consul_ip:$port/v1/kv/upstreams/$upstream_name/$backend_ip:$backend_port
curl -X PUT -d '{"weight":2, "max_fails":2, "fail_timeout":10, "down":0}' http://127.0.0.1:8500/v1/kv/upstreams/arch/gateway_zuul/127.0.0.1:49199 #delete curl -X DELETE http://$consul_ip:$port/v1/kv/upstreams/$upstream_name/$backend_ip:$backend_port curl -X DELETE -d '{"weight":2, "max_fails":2, "fail_timeout":10, "down":0}' http://127.0.0.1:8500/v1/kv/upstreams/arch/gateway_zuul/127.0.0.1:49199

  

原文地址:https://www.cnblogs.com/xuliang666/p/11157156.html