nginx-upsync-module 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
nginx-upsync-module 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
nginx-upsync-module 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
nginx-upsync-module 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
nginx-upsync-module 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

nginx-upsync-module 是微博开源的一个基于 Nginx 实现动态配置的模块,通过拉取 Consul 或 etcd (及其它)的上游数据,实现无需重新加载 Nginx ,动态修改后端服务器属性(weight,max_fails,down ...)。

修改配置文件并重新启动 Nginx 可能并不总是很方便。 例如,当遇到大流量和高负载,重启 Nginx 并在此时重新加载配置会进一步增加系统负载,并可能暂时降低性能。使用 nginx-upsync-module 模块则可以在不影响性能的情况下,更加平滑的扩展和收缩。

nginx-consul:

http {
    upstream test {
        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;
    }

    upstream bar {
        server 127.0.0.1:8090 weight=1 fail_timeout=10 max_fails=3;
    }

    server {
        listen 8080;

        location = /proxy_test {
            proxy_pass http://test;
        }

        location = /bar {
            proxy_pass http://bar;
        }

        location = /upstream_show {
            upstream_show;
        }

    }
}

nginx-etcd:

http {
    upstream test {
        upsync 127.0.0.1:2379/v2/keys/upstreams/test upsync_timeout=6m upsync_interval=500ms upsync_type=etcd strong_dependency=off;
        upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;

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

    upstream bar {
        server 127.0.0.1:8090 weight=1 fail_timeout=10 max_fails=3;
    }

    server {
        listen 8080;

        location = /proxy_test {
            proxy_pass http://test;
        }

        location = /bar {
            proxy_pass http://bar;
        }

        location = /upstream_show {
            upstream_show;
        }

    }
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2020/08/13 12:46

nginx+nginx-upsync-module实现动态负载及自定义验证

一、说明 nginx一般直接在配置文件里配置upstream即可实现负载均衡,但有些特定的环境下此种方式就显得有些局限性。比如后端服务器无法依据端口占用检查存活的时候;后台动态调整节点的时候;调整节点后不想修改配置文件重启nginx的时候等等。 此文的思路是将配置文件从nginx本地迁移到其他第三方服务上如etcd、consul上,然后时候拉取配置到本地。理论上说任何第三方配置中心都可以实现该功能,但需要对应的nginx模块。本文采用...

0
0
01/18 10:26

nginx系列:使用upsync模块实现负载均衡

一、nginx reload的问题 问题描述 nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程才真正退出。 解决办法 对于社区版nginx目前有三个选择方式: Tengine 的Dyups模块。 微博的Upsync+Consul 实现动态负载均衡。 OpenResty的balancer_by_lua(又拍云使用其开源的slardar(Consul balancer_by_lua))。 本文使用ups...

0
0
发表了博客
2018/02/24 15:43

死磕nginx系列--使用upsync模块实现负载均衡

问题描述 nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程才真正退出。 解决办法 对于社区版nginx目前有三个选择方式: Tengine 的Dyups模块。 微博的Upsync+Consul 实现动态负载均衡。 OpenResty的balancer_by_lua(又拍云使用其开源的slardar(Consul balancer_by_lua))。 本文使用upsync模块来解决配置文件修改...

0
0
发表了博客
2020/11/10 12:41

Upsync:微博开源基于Nginx容器动态流量管理方案

Upsync:微博开源基于Nginx容器动态流量管理方案 编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由姚四芳在高可用架构群分享。转载请注明来自高可用架构公众号「 ArchNotes 」。 姚四芳,新浪微博高级技术专家,微博平台架构组技术负责人。2012 年加入新浪微博,参与微博 Feed 架构升级,平台服务化改造,混合云等多个重点项目,现任微博平台架构组技术负责人,负责平台公共基础组建的研发工作。曾在 QCon 进...

0
0
发表了博客
2019/09/20 14:52

Nginx_Kafka_Module

1.安装git yum install -y git 2.切换到/usr/local/src目录,然后将kafka的c客户端源码clone到本地 cd /usr/local/src git clone https://github.com/edenhill/librdkafka 3.进入到librdkafka,然后进行编译 cd librdkafka yum install -y gcc gcc-c++ pcre-devel zlib-devel ./configure make && make install 4.安装nginx整合kafka的插件,进入到/usr/local/src,clone nginx整合kafka的源码 cd /usr/local/src git clone ht...

0
0
发表于软件架构专区
2015/06/01 16:04

nginx_upload_module

按照nginx官方的指导,编译upload model会有点小问题。to_write函数没有。 ./configure --prefix=/the_intall_path --add-module=/your_path_for_upload_moule_src/nginx_upload_module-2.2.0 在网上找了一个包。但忘记了出处。 保存在这里了。 download

0
0
发表于软件架构专区
2013/11/25 15:38

nginx及nginx-rtmp-module安装

系统说明: centos6.2_64 一、版本 nginx-1.4.4 nginx-rtmp-module-1.0.6 https://github.com/shenhailuanma/nginx-rtmp-module.git 二、安装 ./configure --add-module=/root/nginx-rtmp-module-1.0.6 很正常的,出现问题: ./configure: error: the HTTP rewrite module requires the PCRE library. 安装pcre-devel与openssl-devel解决问题 在centos下: yum -y install pcre-devel openssl openssl-devel 在ubuntu下: sudo...

0
5
发表了博客
2018/11/14 17:12

nginx 安装 lua-nginx-module

需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module 1.下载安装LuaJIT-2.0.5.tar.gz http://luajit.org/download.html wget -c http://luajit.org/download/LuaJIT-2.0.5.tar.gz tar xzvf LuaJIT-2.0.5.tar.gz cd LuaJIT-2.0.5 make install PREFIX=/usr/local/luajit #注意环境变量! vim /etc/profile export LUAJIT_LIB=/usr/local/luajit/lib export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0 #####export L...

0
0
2020/07/03 08:30

通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布

前提 前段时间顺利地把整个服务集群和中间件全部从UCloud迁移到阿里云,笔者担任了架构和半个运维的角色。这里详细记录一下通过Nginx、Consul、Upsync实现动态负载均衡和服务平滑发布的核心知识点和操作步骤,整个体系已经在生产环境中平稳运行。编写本文使用的虚拟机系统为CentOS7.x,虚拟机的内网IP为192.168.56.200。 动态负载均衡的基本原理 一般会通过upstream配置Nginx的反向代理池: http {          upstream ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
18 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部