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