Nginx+Consul+upSync实现动态负载均衡

时间:2021-6-12 作者:qvyue

上一篇 Nginx导致图片下载失败的原因分析
下一篇 >>>Nginx+Lvs+keepAlived实现高可用


1.什么是动态负载均衡

传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf。
这类似分布式的配置中心

2.动态负载均衡的实现方案

a.Consul+Consul-template 每次发现配置更改需要raload nginx,重启Nginx。
b.Consul+OpenResty 实现无需raload动态负载均衡
c.Consul+upsync+Nginx 实现无需raload动态负载均衡

3.Consul+upSync+Nginx实现动态负载均衡注意点

a、安装Consul,用于服务的注册与发现,可存在K/V,V可以为List集合
b、Upsync是新浪微博开源的基于Nginx实现动态配置的三方模块,为nginx安装nginx-upsync-module模块
c、Nginx必须是1.9及以上的版本,在Nginx中配置upsync模块,动态读取consul里的服务地址。

4.核心配置

  ##动态去consul 获取注册的真实反向代理地址
   upstream jarye{
        server 127.0.0.1:11111;
        upsync 192.168.212.134:8500/v1/kv/upstreams/jarye upsync_timeout=6m upsync_interval=500ms upsync_type=consul strong_dependency=off;
        upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://jarye;
            index  index.html index.htm;
        }
    }

推荐阅读:
DNS域名解析过程
初识Nginx与负载均衡
Nginx使用场景之静态服务器
Nginx使用场景之虚拟主机(动静分离)
Nginx使用场景之反向代理
Nginx使用场景之负载均衡和故障转移(主从)
Nginx使用场景之跨域解决
Nginx使用场景之资源压缩
Nginx使用场景之数据缓存
前后端分离场景通过Nginx调试本地后端接口
Nginx Location指令详解
Nginx全局变量
Nginx导致图片下载失败的原因分析
Nginx+Lvs+keepAlived实现高可用
Linux环境安装Nginx
Linux环境安装keepAlived
Keepalived虚拟vip功能
Nginx安全防护汇总(转)

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。