我使用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
1条答案
按热度按时间cwtwac6a1#
这确实是Nginx开源版本的预期行为。
作为替代:您可以使用一个简单的健康检查REST API来自动化验证后端(Artifactory)可用性的过程,并在出现问题时更新Nginx配置。