为什么nginx被动健康检查配置不起作用?

eufgjt7s  于 2022-11-21  发布在  Nginx
关注(0)|答案(1)|浏览(166)

我使用Nginx OSS nginx/1.20.1 版本作为反向代理和负载平衡器。在负载平衡器后面,有两台服务器在运行jfrog artifactory web app服务。
我想以这样一种方式配置Nginx,即每当Web应用程序服务出现故障时,Nginx应停止向特定服务器发送请求。
为此,我在conf文件中添加了passive health check参数(*fail_timeout= 900 s *

upstream artifactory {
    server 172.1.1.1:8082  fail_timeout=900s;
    server 172.1.1.2:8082  fail_timeout=900s;
}

upstream artifactory-direct {
    server 172.1.1.1:8081  fail_timeout=900s;
    server 172.1.1.2:8081  fail_timeout=900s;
}

server {
    listen 80  default_server;
    server_name xxx.xxx.xxxx.net xxx.xxx.xxx.xxx.net;
    return 301 https://xxx.xxx.xxx.xxx.net$request_uri;

}

然后我停止了其中一个上游服务器上的Web服务,并检查了Nginx错误日志,它将请求重定向到两个上游服务器。理想情况下,它应该将其中一个服务器标记为“不可用”,但它却这样做了。有人能帮助解决这个问题吗?
已连接nginx config files

cwtwac6a

cwtwac6a1#

这确实是Nginx开源版本的预期行为。
作为替代:您可以使用一个简单的健康检查REST API来自动化验证后端(Artifactory)可用性的过程,并在出现问题时更新Nginx配置。

相关问题