我们将服务部署在 4 个应用服务器中。我们有 2 个 Nginx 用于负载平衡。我们正在使用 1 个 Consul 服务器进行服务发现。我们将其中一个应用服务器用作 Canary 服务器,以使用该split_clients
指令测试 Canary 部署。使用 Nginx 模板文件,我们控制到 Canary VS 非 Canary 服务器的流量。
我已经使用本地主机上的 curl 在所有 4 台服务器上单独测试了该服务。然后我在一台 Nginx 服务器上测试了 curl 命令。我收到了响应,但它仅从非金丝雀应用服务器返回。没有流量路由到 Canary 服务器。
nginx.conf 文件填充如下:
....
upstream canary_servers{
server server4:port max_fails=3 fail_timeout=60 weight=1;
}
upstream non_canary_servers{
server server1:port max_fails=3 fail_timeout=60 weight=1;
server server2:port max_fails=3 fail_timeout=60 weight=1;
server server3:port max_fails=3 fail_timeout=60 weight=1;
}
split_clients "app${remote_addr}${date_gmt}" $app_variant{
* canary_servers;
70% non_canary_servers;
}
.....
这里有什么问题?我错过了什么?