nginx 根据IP 进行灰度发布
灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。
nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。
需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。
条件:办公室网络出口有固定IP
解决办法:
nginx 负载均衡器判断客户端IP地址,
如果是办公室IP,则反向代理到准生产环境;
如果不是,则反向代理到生产环境。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | upstream prod {    server 192.168.1.10;    server 192.168.1.11;}upstream pre-prod {    server 192.168.1.100;}server {    listen 80;    access_log /var/log/nginx/access.log main;    set$web_backend prod;    if($remote_addr ~ "123.123.123.123") {        set$web_backend pre-prod;    }    location / {        proxy_pass http://$web_backend;        include proxy.conf;    }} | 
同理,也可以根据不同的IP,设置不同的网站根目录,达到相同的目的。
| 1 2 3 4 5 6 7 8 9 10 11 | server {    listen 80;    access_log /var/log/nginx/access.log main;    set$rootdir "/var/www/html";    if($remote_addr ~ "123.123.123.123") {        set$rootdir "/var/www/test";    }    location / {        root $rootdir;    }} | 
同理,还可以利用geoip做基于地理位置的灰度发布,不详细介绍。
注: set 命令依赖rewrite 模块。
出处http://purplegrape.blog.51cto.com/1330104/1403123
nginx 根据IP 进行灰度发布的更多相关文章
- nginx+lua+redis实现灰度发布_test
		nginx+lua+redis实现灰度发布: 灰度发布是指在黑白之间能够平滑过渡的一种方式 AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见, ... 
- 利用nginx+lua+memcache实现灰度发布
		一.灰度发布原理说明 灰度发布在百度百科中解释: 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什 ... 
- 基于nginx+lua简单的灰度发布系统
		upstream.conf upstream grey_1 { keepalive 1000; server localhost:8020; } upstream grey_2 { keepalive ... 
- Nginx配之负载均衡、缓存、黑名单和灰度发布
		一.Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y(若不能安装,执行命令yum install epel-release) 2. 启动.停止和 ... 
- 使用Nginx实现灰度发布
		灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ... 
- Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布
		一.Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y(若不能安装,执行命令yum install epel-release) 2. 启动.停止和 ... 
- 使用Nginx实现灰度发布(转)
		灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ... 
- 【Nginx】实现负载均衡、限流、缓存、黑白名单和灰度发布,这是最全的一篇了!
		写在前面 在<[高并发]面试官问我如何使用Nginx实现限流,我如此回答轻松拿到了Offer!>一文中,我们主要介绍了如何使用Nginx进行限流,以避免系统被大流量压垮.除此之外,Ngin ... 
- nginx+lua实现灰度发布/waf防火墙
		nginx+lua 实现灰度发布 waf防火墙 课程链接:[课程]Nginx 与 Lua 实现灰度发布与 WAF 防火墙(完)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 参考博客 Nginx ... 
随机推荐
- arp断网攻击解决办法
			局域网中有这个提示arp断网攻击是正常的,说明防火墙已经拦截了,是有人用P2P工具控制你的网速,或者是局域网有机器中病毒了也会有这样的提示,不过不用担心,今天给大家带来几个防止arp断网攻击的办法,希 ... 
- javascript获取对象宽度和高度
			标签元素的宽高值获取//绝对宽度Obj.offsetWidth//绝对高度Obj.offsetHeight 以下是获取窗口对象的宽高值.clientHeight 获取对象的高度,不计算任何边距.边 ... 
- php 带cookie登陆
			<?php /** * @version $id */ define('SCRIPT_ROOT',dirname(__FILE__).'/'); $act = trim($_REQUEST['a ... 
- php防止sql注入函数
			$magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_ ... 
- scrapy1.1入门用例简介
			今天将scrapy安装成功,测试了下,倒腾了好长时间,才倒腾成功,特此分享. 其实最好的老师就是scrapy的帮助文档,只要把文档看懂,照着做,也就啥都会儿了! 帮助文档下载见http://downl ... 
- python运维开发之第八天(socket)
			什么是 Socket? Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯. soc ... 
- [转] .NET 3.5中MSChart组件的ImageLocation属性含义
			在.NET程序/网站中如果要生成统计图表/图形,以前可以采用OWC(Office Web Components),如OfficeXP组件OWC10.Office2003组件OWC11.OWC采用COM ... 
- Oracle 游标使用全解(转)
			转自:http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- ... 
- springmvc基于xml配置文件
			web.xml 配置文件 <!-- springmvc 配置入口 --> <servlet> <servlet-name>mvc-dispatcher</se ... 
- SpringMVC入门2-注解开发
			Spring MVC 注解开发 <context:component-scan base-package="com.controls" /> Springmvc的扫描器 ... 
