我有一个使用Tornado构build的应用程序,运行在带有Nginx的前端服务器的两台16核心服务器上。 Tornado的部署指南提出了每个CPU固化程序的一个应用程序实例,因此我总共运行了32个应用程序实例。
我在Nginx上遇到的问题是,如果应用程序服务器出现问题导致所有实例不可用(导致连接超时),则NGINX会遍历32个实例中的每一个,并在返回错误之前检查它。 连接超时设置为5秒,所以在NGINX实际发送回用户说出现问题之前2:30分钟。
在向用户发送错误之前,有没有办法限制NGINX将重试的服务器数量? IE浏览器检查两台服务器,然后放弃而不是循环浏览所有的服务器?
您可以通过在每个后端服务器上设置nginx来添加另一层代理,因此前端将只有两个服务器在其上游部分中列出,而不是32个。