NGINX健康检查需要上游

时间:2018-08-14 09:18:07

标签: nginx nginx-location

我的位置类似于:

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

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

1 个答案:

答案 0 :(得分:0)

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

很显然,您正在尝试根据一些请求元数据定向流量,而上述建议对此无济于事。您的情况并非罕见,因此我希望这种情况行之有效。看起来像是nginx中的错误,或者至少是文档中的空白。