我对 Unicorn 配置和 Nginx 的结合有很好的经验,经过优化和调整程序后它工作得非常好。但是现在我有一个问题,使用 Unicorns 将负载分散到多台机器上的最佳方法是什么。
问题是你有 3 台机器(Nginx 负载均衡器,2 台带有 Unicorns 的 APP 服务器),你如何管理 Unicorns 的负载均衡与服务静态资产。
您现在通过 TCP 连接到 Unicorn 是否有任何缺点(超时、连接丢失),是否有任何其他方法可以通过网络进行上游套接字连接(可能通过 SSH 进行端口转发)?Unicorn 设计为无状态,但您如何管理边缘情况?
我不想从平衡器节点提供静态服务,所以可以在每个 APP 服务器上设置 Nginx 并在它们前面设置哑 Nginx 平衡器吗?
PS 我当前的配置已经过很好的测试,可以在Github上找到,但是在同一台机器上使用 Nginx+Unicorn 的设置已经成为瓶颈。
更新:开发完全取决于特定的服务器配置。瓶颈的发生不仅是因为开发人员的决定,还因为他运行它的环境。Stackoverlow 充满了高度标记的问答,这些问答与关于特定配置的难以了解的细节有关。下面回答的 Alex 与 Github 合作,非常感谢有这样合格的人回复!