我在一个相当大的应用程序上遇到Phusion Passenger的部署问题:高负载停滞的进程,空闲进程,实例缓慢启动等等。所以我正在调查Unicorn,我非常喜欢它架构/绩效观点。
是否有任何易于遵循的迁移指南可以从Nginx Phusion Passenger转到Unicorn?
答案 0 :(得分:4)
这个问题很老了,我的回答没有直接回答这个问题,但我刚刚遇到了一个使用Unicorn,nginx等的堆栈的相当详细的部署指南:
我想将来会把它扔给那些在将来遇到这个问题的人。
答案 1 :(得分:1)
由于较新版本的Rails使用Rack,因此在Web服务器之间切换应该相当容易。当您在开发环境中使用您的应用程序简单地启动Unicorn时,您遇到了哪些具体问题?
您应该能够继续使用Nginx作为反向代理。根据我的收集,Unicorn应该在工作人员之间进行负载平衡,因为它只有一个共享的侦听套接字/端口。因此,通常应将Nginx配置为非常简单的反向代理和资产服务器,不带负载平衡。 (当然,除了将工人分散到机器之外。)
您希望解决的应用程序中是否存在对Passenger的特定依赖?或者您是否要求为Unicorn提供通用部署说明?
答案 2 :(得分:1)
这些问题已在Phusion Passenger中解决。 Phusion Passenger 4完全支持异步流程产生,提供针对卡住流程的保护,支持滚动重启等。从架构的角度来看,Phusion Passenger 4采用了混合的事件/多线程/多流程设计。这就像Unicorn,Rainbows和Puma之间的合并,但它提供了简单的配置选项,可以无缝切换模式。