在生产部署时,如果担心部署的代码可能会有问题,那就需要灰度部署,用灰度版本验证通过后,再发布到生产环境。
灰度部署原理:将打包后的项目分成两个文件夹,一个是生产环境文件夹,对用户开放,还有一个是灰度文件夹,只有固定IP或者固定测试账号才能访问到。
1、建两个目录,www目录为生产环境,www-grey为灰度环境
2、测试账号灰度方案,登录后将account写到cookie中,缺点:登录前场景不方便验证,只能手动改cookie
server {
listen 80;
server_name localhost;
# root默认目录
root /usr/local/var/www;
location / {
if ($cookie_account ~ "(672364|231452)") {
# 如果cookie中的account在灰度账号中,则将root切换为灰度目录返回
root /usr/local/var/www-grey;
}
index index.html index.htm;
}
}
生产版本
灰度版本
3、固定IP方案,根据测试wifi的IP灰度验证
获取本地ip:https://ip.cn/
server {
listen 80;
server_name localhost;
# root默认目录
root /usr/local/var/www;
location / {
if ($remote_addr ~ "(58.211.101.67|10.59.100.47)") {
# 如果用户IP在灰度IP列表中,则将root切换为灰度目录返回
root /usr/local/var/www-grey;
}
index index.html index.htm;
}
}