我们在4个应用服务器上部署了我们的服务。我们有2个Nginx用于负载均衡。我们使用一台领事服务器进行服务发现。我们将其中一个应用程序服务器指定为金丝雀服务器,以使用split_clients指令测试金丝雀部署。使用Nginx模板文件,我们控制到Canary和非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;
}
.....这里会有什么问题呢?我遗漏了什么?
发布于 2020-05-15 15:59:22
尝试将asterix放在最后一行:
split_clients "app${remote_addr}${date_gmt}" $app_variant{
70% non_canary_servers;
* canary_servers;
}发布于 2020-05-27 22:56:48
上述问题可以通过使用*或实际的%来解决。
https://stackoverflow.com/questions/61809960
复制相似问题