我一直在玩并评估rails的默认WEBrick服务器的其他选项,而Thin是最轻松,最干净的东西,效果非常好!!
你会推荐这些Mongrel,Thin,WEBrick和Passenger中的哪一个以及为什么......? 是否有任何可扩展性特权(集群友好或可以处理某种规模的配置)与这些服务器中的任何一个一起提供..或者在评估它们时是否应该将可扩展性作为参数?
答案 0 :(得分:9)
Dipak已经回答了你问题的一半,但让我澄清一下事情。 (我是Phusion Passenger的作者之一。)
在可扩展性方面,没有太大区别。它们在生产中的表现非常相似,它们都以大致相同的方式扩展,并且您遇到的任何问题最有可能是由您的应用程序或Rails引起的。好吧,除了WEBrick,你真的不应该在生产中使用它。您可能会看到hello world benchmarkmark的不同之处,但这将是全部。在生产中使用大部分时间将花在应用程序中,因此在hello world benchmarkmark中可见的任何微小速度差异将变得完全不可见。
但是要注意一些细微之处。
根据应用程序的性质,I / O模型可能重要,也可能不重要。 Mongrel,Thin,Unicorn,它们都是多进程的单线程。这对于在本地数据库中查找内容并呈现内容的传统Web应用程序非常有用,但主要用于执行大量HTTP API调用或者必须在I / O上等待很多的应用程序。 Why Rails 4 Live Streaming is a Big Deal详细解释了这一点。
Phusion Passenger也是多进程单线程,但Phusion Passenger Enterprise支持多线程。 Phusion Passenger Enterprise是开源Phusion Passenger的商业变体,具有适用于大规模生产环境的各种功能。
因此,选择您认为最适合您的方案的任何选项。
答案 1 :(得分:1)
最容易设置的产品可能是Apache和mod_rails(乘客)。如果你想使用新的热度,你可以给nginx和乘客一个旋转。
对于开发,杂种通常是最容易使用的。大多数Windows IDE(RadRails,Netbeans)允许您选择使用Webrick或Mongrel进行开发工作,并允许您从IDE本身控制服务器。
<强>更新强>
四种选择
实际上有四个选择,加上WEBrick,但这对于生产服务器来说是一个不寻常的选择。大约按复杂程度增加......
nginx + Mongrel nginx +乘客 Apache + Mongrel Apache + Passenger (有Phusion Passenger Standalone,但这真的是一个nginx +乘客编组在一起,所以我不算数,虽然对某些人来说这可能是一个不错的选择。)
然后,较大的站点可能会在服务器前添加专用的第7层硬件(NetScaler,F5,...)。
答案 2 :(得分:0)
薄的就像宝石“薄”一样容易开发和生产