我使用Nginx来负载均衡在多个Node.js实例中运行的websocket应用程序。 当有成千上万的活动连接时,单个消息广播可以使节点在几秒钟内旋转。 在此期间,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; }
备份实例很less接收请求。 看起来像Nginx正在一个一个的通过上游服务器。 备份服务器只有在所有其他服务器都尝试过的情况下才能到达。 由于使用的是least_conn,所以它们会比第一个更加蜂拥而至。 Nginx应该放弃最初尝试并使用备份服务器。 但我不知道如何使它在我使用的Nginx(1.4)版本中发生。 任何帮助或build议,将不胜感激。