NGINX健康检查需要上游



我有一个位置,如下所示:

location / {
set $api_name "Web";
proxy_intercept_errors on;
set $upstream upstream_a;
if ( $kms_in_cookie != "not_set" ) {
set $upstream $kms_in_cookie;
}
if ( $upstream_in_cookie != "not_set" ) {
set $upstream $upstream_in_cookie;
}
if ($cookie_zak != "") {
set $upstream upstream_b;
}
proxy_pass http://$upstream;
health_check uri=/healthcheck  interval=30 fails=3 passes=3;}

一旦我重新启动我的NGINX,它就失败了:

nginx: [emerg] health check requires an upstream in

有人对此有想法吗?此错误是什么意思?

我遇到了同样的问题。通过试验,问题似乎是proxy_pass指令中的变量名称。如果使用有效上游的名称,则问题已解决。

显然,您正在尝试根据某些请求元数据来引导流量,而上述建议对此无济于事。您的情况并不少见,因此我希望这能奏效。看起来像nginx中的一个错误,或者至少是文档中的空白。

最新更新