灰度发布或者灰度升级是指将产品的新版本上线后只开放给一小部分用户进行评估使用,实现灰度发布的方案有很多,以下是基于nginx对特定ip的用户开放新版本的配置方法:
upstream old_version {
server 192.168.1.10:80;
}
upstream new_version {
server 192.168.1.20:80;
}
location / {
# 根据 IP 地址进行流量分发
if ($remote_addr ~* "192.168.1.100|192.168.1.101|192.168.1.102") {
proxy_pass http://new_version;
}
else {
proxy_pass http://old_version;
}
}
在上面的例子中,只对192.168.1.100~102的三个IP开放了新版本的访问,其他用户还是使用旧版本。