如何让 Nginx 快速切换到备份上游服务器?

如何让 Nginx 快速切换到备份上游服务器?

我使用 Nginx 对在多个 Node.js 实例中运行的 websocket 应用程序进行负载平衡。当有数千个活动连接时,一条消息广播就可能使 Node 停滞数秒。在此期间,Node 不会处理传入连接。为了在服务器负载过重时仍保持响应能力,我希望有一个备用进程,仅在其他进程响应不够快时才使用。我认为将一个 Node 实例标记为“备份”会有效:

upstream nodejs_backends {
    least_conn;

    server 127.0.0.1:5001;
    server 127.0.0.1:5002;
    server 127.0.0.1:5003;
    server 127.0.0.1:5004;
    server 127.0.0.1:5005;
    server 127.0.0.1:5006;
    server 127.0.0.1:5007;
    server 127.0.0.1:5008   backup; 
}

备份实例很少收到请求。似乎 Nginx 正在逐个检查上游服务器。只有在尝试完所有其他服务器后才会到达备份服务器。由于使用了 least_conn,它们将比第一个服务器更加拥挤。Nginx 应该在初次尝试后放弃并使用备份服务器。但我不知道如何在我使用的 Nginx 版本 (1.4) 中实现这一点。任何帮助或建议都将不胜感激。

相关内容