【发布场景】
站点(upload.cnblogs.com)部署在1台阿里云服务器上,带宽也绑定在这台服务器上,想在同1台服务器上灰度发布新版upload站点,只让一部分用户新版访问upload站点。
【限制条件】
1)服务器只能绑定1个公网IP
2)只能部署在同1台服务器上(因为带宽绑定在这台服务器)
3)不管访问的是新站点还是旧站点,用户访问的都是同1个域名(upload.cnblogs.com)
做反向代理,ok么?
高!好思路!而且阿里云SLB就是一个现成的反向代理。
基于这个反向代理的思路,打算这样实现:
1)在这台upload服务器上以8080端口绑定upload.cnblogs.com的方式部署新站点
2)创建1台阿里云SLB(反向代理),在“服务监听”中设置后端服务器的端口为8080,并添加upload服务器作为后端服务器。
3)在dns服务器中添加解析,将部分用户访问upload.cnblogs.com的请求解析到SLB(反向代理)的IP地址。
@dudu: 这个部分用户是随机的?我想请教一下,如何在反向代理中添加业务规则?
@幻天芒: 这取决于dns解析的方式,我们会选择部分地区的用户进行解析。反向代理通常只是一个web服务器,比如nginx,怎么会有添加业务规则的需求?
@dudu: 我还以为你们是要指定部分用户呢,我一般也是用Nginx做反向代理,没添加过业务规则。。
@dudu: 这种需求还是有的,比如像QQ空间会让某个数字结尾的QQ用户体验新版,或者某部分用户很积极参加内测,必须让他们可以使用测试版,而其他人还是稳定版,这样对于反向代理就有解析业务规则的需求了
最好来个图。。
写两个xml文件,用户访问时判断分给用户的是旧站点,页面中加载旧站点对应xml文件;反之,用户访问时判断分给用户的是新站点,页面中加载新站点对应xml文件。