我对使用Nginx的Unicorn配置有很好的经验,它在优化和调优程序之后运行得很好。但是现在我有一个问题是用Unicorns在多台机器上分配负载的最佳方法是什么。
问题是你有3台机器(Nginx负载均衡器,2台带有Unicorns的APP服务器),你如何管理Unicorns与服务静态资产的负载均衡。
你现在有没有通过TCP连接到Unicorn的任何缺点(超时,连接丢失),是否有任何其他方式通过网络上游套接字连接(可能通过SSH端口转发)? Unicorn设计为无国籍,但你如何处理边缘情况?
我不想从平衡器节点提供静态,所以可以在每个APP服务器上设置Nginx并在它们前面设置哑的Nginx平衡器吗?
P.S。我当前的配置经过了充分测试,可以在Github上找到,但是在已经成为瓶颈的同一台机器上安装了Nginx + Unicorn。
更新:开发严格依赖于特定的服务器配置。瓶颈不仅会因为开发人员的决定而发生,而且还会因为他运营环境而发生。 Stackoverlow已经充满了高度标记的Q& A,与有关特定配置的难以知晓的细节有关。下面回答的Alex和Github一起工作我非常感谢能有这样一位合格的人的回复!
答案 0 :(得分:1)
不要通过TCP /网络访问Unicorns。
您的设置似乎很好,您只需在APP服务器前添加一个负载均衡器,但我建议将Keepalived(LVS ftw)作为负载均衡器而不是Nginx。
您可以通过套接字平衡与运行Nginx + Unicorns的APP服务器的连接。