【发布时间】:2020-08-31 17:33:24
【问题描述】:
我们的服务部署在 4 个应用服务器中。
我们有 2 个 Nginx 用于负载平衡。
我们正在使用 1 个 Consul 服务器进行服务发现。
我们将其中一个应用服务器用作 Canary 服务器,以使用 split_clients 指令测试金丝雀部署。
使用 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;
}
.....
这可能是什么问题?我错过了什么?
【问题讨论】:
标签: nginx nginx-config canary-deployment