匿名
未登录
登录
Linux78|wiki
搜索
查看“Nginx 灰度发布(基于cookies)”的源代码
来自Linux78|wiki
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Nginx 灰度发布(基于cookies)
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
wiki:用户|用户
您可以查看与复制此页面的源代码。
=== 背景介绍 === 灰度发布,主要任务是从产品用户群中按照一定策略选取部分用户,让他们先行体验新功能或版本。 ==== 灰度作用 ==== 及早获得用户的意见反馈,完善产品功能,提升产品质量 让用户参与产品测试,加强与用户互动 降低产品升级所影响的用户范围 ==== 灰度策略 ==== 其实就是什么的请求应该路由到我们的灰度版本(灰度机器)上来。这个往往是业务强相关的。比如对于API来说,一般有如下几个需求: 基于用户标识 基于用户IP …… === 灰度实现方式 === 灰度发布一般有三种方式 nginx+lua,nginx根据cookie分流,nginx 根据权重来分配 nginx+lua根据来访者ip地址区分,由于公司出口是一个ip地址,会出现访问网站要么都是老版,要么都是新版,采用这种方式并不适合 nginx 根据权重来分配,实现很简单,也可以尝试 nginx根据cookie分流,灰度发布基于用户才更合理 ==== 灰度实施 ==== nginx基于用户标识的灰度发布才更合理 upstream A { server 127.0.0.1:8360; } upstream B { server 127.0.0.1:8361; } server { listen 80; server_name localhost; set $group A; if ($http_cookie ~* "version_id=new"){ set $group B; } location / { proxy_pass http://$group; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; index index.html index.htm; } } 前端nginx服务器监听端口80,需要根据cookie转发,查询的cookie的键(key)为"version_id(该键由开发负责增加),如果该cookie值(value)为new则转发到B,其他则转发到A。
返回至
Nginx 灰度发布(基于cookies)
。
导航
导航
首页
最近更改
随机页面
栏目
Nginx
Kubernetes
Spring Cloud
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志