hello:
简化配置如下:
upstream upstream_main{
server 1;
server 2;
server 3;
server 4;
}
upstream upstream_group1 {
server 1;
}
upstream upstream_group2 {
server 2;
}
server {
location / {
set $upstream_sign upstream_main ;
rewite_by_lua_file " diversion.lua"
proxy_pass http://$upstream_sign;
}
}
在divsersion.lua 中做的事情就是根据shdict中的一些策略来更改upstream_sign的值,从而到达分流/灰度的目的。比如若请求命中特征a,则替换为upstream_group1等。
现在有个问题:若都不命中的话,请求会走upstream_main,即所有节点。 业务希望若所有特征都不命中,则走未分组的节点(上面的例子就是server 3 ,server4)
目前的解决办法是:让业务将未分组的节点单独划分为组,upstream_default,这样在不明中的时候替换为upstream_default。
但业务不想关心也不想管理默认分组,有啥好的解决办法么?
谢谢。