灰度发布策略:基于用户标识,基于IP等
灰度发布实现方式:
nginx+lua根据来访者IP地址区分
nginx根据cookie分流
nginx根据权重分配
nginx基于用户标识灰度发布
upstream G1 {
server 127.0.0.1:8001;
}
upstream G2 {
server 127.0.0.1:8002;
}
server {
listen 80;
server_name localhost;
set $group G1;//设置变量group为G1
if ($http_cookie ~* "version_id=new"){
set $group G2;
}
localhost / {
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的键为‘version_id’,(该键有开发在后台写cookie的时候写入特定标识字段),如果该cookie的值为new则转发到B,其他则转发到A