nginx实现简单的A-B测试(灰度发布)

    灰度发布,现在是很多大项目的一个标配运维特性,我们可以将一个“新的版本代码”发布到集群中的少数几台(组)机器上,以便引入线上少量真实用户进行测试,用于验证产品改进的收益、小规模试错等。nginx提供了“nginx_http_split_clients_module”、“nginx_stream_split_clients_module”,分别适用于http和tcp,可以帮助我们简单实现这些功能,不过如果你需要高度自动化、自主化的特性,或许需要进行一定的扩展和改造。

 

    split模块在0.8版本就已经有了,使用起来也非常简单:

split_clients string $variable {....}

 

    此指令的上下文为http。

    1、假如,我们的web项目中提供了2个html页面,其中index_new.html为最新发布页面,index.html为旧页面,为了“避免新页面有BUG,而影响全站用户”、“测试新页面上体验改进是否符合预期”,我们将index页面的访问流量中的10%转发到新页面上,剩余90%继续使用旧页面。

split_clients "${remote_addr}_1qazxsw2" $variant {
               10%               _new;
               *                  "";
}

server {
    ...
    location / {
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值