ruby-on-rails – 哪一个是与“最新轨道”应用程序一起使用的更好选择?杂种,瘦,WEBrick和乘客

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 哪一个是与“最新轨道”应用程序一起使用的更好选择?杂种,瘦,WEBrick和乘客前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在玩并评估rails的默认WEBrick服务器的其他选项,而Thin是最无痛,最干净的东西,效果非常好!!

你会推荐哪一个Mongrel,Thin,WEBrick和Passenger以及为什么……?
是否有任何可扩展性特权(集群友好或配置,可以处理某种规模),这些服务器随附任何这些服务器.或者在评估它们时,可扩展性甚至应该是一个参数?

解决方法

Dipak已经回答了你问题的一半,但让我澄清一下事情. (我是Phusion Passenger的作者之一.)

> WEBrick是一个玩具网络服务器.没有人在开发中使用它,因为它表现不佳而且据说会泄漏内存.
>你说Thin工作得很好.您是否已在反向代理配置中进行设置?因为这就是人们在生产场景中所做的事情.将Thin(或Mongrel或Unicorn)直接暴露给Internet是不安全的.
>您可能有兴趣阅读Ruby on Rails server optionsthe Phusion Passenger architectural overview以获得更多详细解释.

在可扩展性方面,没有太大区别.它们在生产中的表现非常相似,它们都以大致相同的方式扩展,遇到的任何问题都很可能是由您的应用程序或Rails引起的.好吧,除了WEBrick,你真的不应该在生产中使用它.您可能会看到hello world benchmarkmark的不同之处,但这将是全部.在生产中使用大部分时间将花在应用程序中,因此在hello world基准测试中可见的任何微小速度差异将变得完全不可见.

但是要注意一些细微之处.

> Phusion Passenger提供了一项称为全局排队的功能.它解决了一个特定的问题,explained in detail in the manual.默认情况下,Nginx和Apache以循环方式代理请求,因此他们遇到了这个问题,而Phusion Passenger没有.有些方法可以在不使用Phusion Passenger时解决这个问题,但需要特定配置或安装其他Web服务器模块.
>根据应用程序的性质,I / O模型可能重要也可能不重要. Mongrel,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的商业变体,具有适用于大规模生产环境的各种功能.
>在大型生产环境中,某些功能变得重要,例如:滚动重启,部署失败时没有出现任何问题,等等.Mongrel,Phusion Passenger,他们都在某种程度上暴露了这些功能,但有些需要比其他人更多的管理工作.例如,要在Mongrel和Thin中实现滚动重新启动,您需要在部署脚本中执行大量步骤. Unicorn不需要那么多步骤,但仍然很重要.这就是Phusion Passenger Enterprise的亮点:它将所有这些功能转换为单个配置选项.打开选项,软件负责其余部分.

因此,选择您认为最适合您的方案的任何选项.

猜你在找的Ruby相关文章