Webrick作为生产服务器与Thin或Unicorn?

Vla*_*lad 117 ruby-on-rails thin production-environment webrick unicorn

似乎理所当然地认为你不能将Webrick用作生产服务器,但我无法真正找到任何提及原因的地方.共识似乎是:"Webrick可以用于开发,但Thin或Unicorn是生产的选择,期限."

我确实查找了瘦服务器的主页,它讨论了请求/秒,但由于没有注释,我不太了解图形.

任何人都可以让我知道为什么我应该使用Thin或Unicorn与Webrick相比?使用Webrick进行开发也有什么好处?我一直在使用Webrick,因为它带有rails,我认为它应该是默认的原因.

顺便说一下,我正在使用Heroku.

Jim*_*lle 41

几个重要原因

  1. 它是用Ruby编写的(参见http://github.com/ruby/ruby/tree/trunk/lib/webrick)
  2. 编辑它没有生产网站通常需要的许多功能,如多个工作者(特别是预分叉,生命周期管理,异步处理等),重定向,重写等

当我提到重定向/重写时,我指的是使用Webrick,你必须处理不同层的重写(Rack,Sinatra,Rails,自定义Webrick代码等).这需要您启动额外的ruby"处理程序"来执行重写代码.对于流量较低的站点,这可能没什么问题,因为您可能已经预热了进程,什么也没做.但是,对于更高流量的站点,这是服务器上的额外负载,前端服务器(Apache,Nginx等)可以处理而不会激活Ruby*,并且可能会快几个数量级.

*例如,如果您在负载均衡器后面运行,则可以将所有重写流量路由到未安装ruby的服务器,并让主服务器仅管理主要流量.这种重写流量可能是由于SEO的网站更改或类似的东西.另一种情况是一个有多个组件的站点,也许一个部分是Rails,另一个是PHP,两者都需要重写(即重写旧的PHP路径到Rails)