Nginx 实现灰度发布的三种方法总结

Nginx 实现灰度发布的三种方法总结

灰度发布的主要原理是访问路由的控制,重点是保证每次访问的是同一个节点。

方式一:通过调节负载均衡权重

        负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

        负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

Nginx 实现灰度发布的三种方法总结

简单配置如下:

?

这种方式灰度发布通过weight来实现,但是这种方式只适合修改节点的行为,而且要求应用都是一模一样的,其实质作用是,节点增加或删除之后,对负载能力的调节,最终目的是为了让流量最终保持均衡。

方式二.使用nginx+lua实现web项目的灰度发布

?

由于使用了nginx+lua模块,这种方式适合很多场景,非常强大,但是问题是你可能需要学习很多lua的语法。

 方式三.使用http头信息判断+权重(灰度值)

http请求传输过程中,会自动带上User-Agent,Host,Referer,Cookie等信息。我们只需要判断ip地址段,用户代理,Cookie中的信息等。我们这里以Cookie为例。

当然,这里需要解决两个问题:

①首次访问静态页面可能不会产生cookie

②我们需要通过代码动态设置路由

③通过weight控制灰度值

我们可以通过一个例子来解决上述中的②与③的问题

?

对于问题①,我们可以在index页面通过script来访问动态页面:

?

此外,我们还要在cookieinfo.php中判断和生成cookie

?

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:https://my.oschina.net/ososchina/blog/905378



相关文章
推荐文章
热门文章

微信公众号推荐

相关推荐