使用Nginx的Canary部署-流量未路由到Canary服务器

时间:2020-05-15 01:01:54

标签: nginx nginx-config canary-deployment

我们在4个应用程序服务器中部署了我们的服务。 我们有2个Nginx用于负载平衡。 我们正在使用1个Consul服务器进行服务发现。 我们将其中一台应用程序服务器专用为Canary服务器,以使用split_clients指令测试Canary部署。 使用Nginx模板文件,我们可以控制到Canary VS非Canary服务器的流量。

我已经使用localhost上的curl在所有4台服务器上分别测试了该服务。然后,我在Nginx服务器之一上测试了curl命令。我收到响应,但仅从非Canary应用程序服务器返回了响应。没有流量路由到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;
}
.....

这里可能是什么问题?我想念什么?

2 个答案:

答案 0 :(得分:1)

尝试将星号放在最后一行:

split_clients "app${remote_addr}${date_gmt}" $app_variant{
   70% non_canary_servers;
   * canary_servers;
}

答案 1 :(得分:0)

使用*或实际%解决了上述问题。

相关问题