根据cookie,业务灰度发布在nginx中完成
位置
灰度是一种可以平滑连接黑白的出版方式。
灰度释放可以保证整个系统软件的稳定性,
在原有灰度的情况下,可以发现问题并进行调整,保证其影响。
存在对商业灰度释放的要求,
根据nginxlua模式,
现阶段,这种方法已经在广平互动广告中完成。
步骤
应用账号登录后,可以区分用户账号是否在灰度发布的注册中。如果用户的cookie中出现灰度释放标志,则页面将被刷新。
当一个用户的页面被访问时,业务连接层的nginx位置代理会根据用户cookie是否标有灰度,是共享给所有后端开发设备还是特定的灰度发布设备来选择用户的请求。
计划
该业务维护一个用户帐户的灰度注册,在程序流程中完成灰度帐户登录时,在cookie中植入一个相关标记。
当用户发出请求时,nginx反向代理连接层可以根据请求中包含的cookie的相关自变量来区分当前请求是发送给全网服务器还是灰网服务器。
求解灰色逻辑
Nginx连接层
装备箱
Nginx配备了静态网页的灰度标准。
计算机网络服务器
{
听80;
服务器名test.qunyingliu.qq.com;
access_loglogs/test.qunyingliu.QQ.com.access.log访问;
默认设置是完全发布。
将$group设置为“满”;
辨别cookie中是否有灰色标识号。
if($http_cookie~*"FC_GREY=1"){
将$group设置为灰色;
}
位置/{
proxy_passhttp://$group;
proxy_set_headerHost$host
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_X_Forwarded_For;
索引index.htmlindex.htm;
}
}
Nginx配备了PHP网页的灰度标准。
位置@灰色{
proxy_next_upstreamhttp_500http_502http_503http_504错误超时invalid_header
add_headerENV'灰色';
proxy_passhttp://Grey;
}
位置@满{
proxy_next_upstreamhttp_500http_502http_503http_504错误超时invalid_header
add_headerENV'full
proxy_passhttp://FULL;
}
位置~\。(php)?${
content_by_Lua_file"conf/Lua/test.群英流.QQ.com.Lua";
}
test.qunyingliu.qq.com.lua:
本地ck=需要“resty.cookie”
localgrey_cookie_key="FC_GREY"
本地cookie,err=ck:new()
如果不是饼干,那么
ngx.exec("@full")
其他
本地字段,err=cookie:get(grey_cookie_key)
如果不是字段,则
ngx.exec("@full")
其他
ngx.exec("@grey")
目标
目标
灰度认证
1.计算机浏览器控制面板设置灰色cookie。
控制台->;setCookie('FC_GREY',1)
2.chrome扩展:editthiscokie-->:"+"->;添加新的cookie。
3.为业务中的用户设置cookie。
总结
只有服务端相互配合才能完成全自动灰度释放,
重点是在nginx上应用lua脚本解决问题,
lua脚本可能会损害请求速度和可靠性,
页面普遍认为nginxlua是一个很好的匹配,
OpenResty,一个开源系统计划,也很受欢迎,
预期效果也必须在业务发布后进行认证。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)