似乎人们理所当然地认为不能使用 Webrick 作为生产服务器,但我找不到任何地方提到原因。共识似乎是: “Webrick 适合开发,但 Thin 或 Unicorn 才是生产的选择。”
我确实查找了瘦服务器的主页,它谈到了每秒请求数,但我不太理解该图,因为没有注释。
谁能告诉我为什么我应该使用 Thin 或 Unicorn 而不是 Webrick?另外使用Webrick进行开发有什么好处吗?自从 Webrick 附带有 Rails 以来,我就一直在使用它,我认为它成为默认值应该有一个原因。
顺便说一句,我正在使用 Heroku。
最佳答案
几个重要原因
- 它是用 Ruby 编写的(请参阅 http://github.com/ruby/ruby/tree/trunk/lib/webrick )
- 已编辑它没有生产网站通常需要的许多功能,例如多个工作人员(特别是预 fork 、生命周期管理、异步处理等)、重定向、重写、等等
当我提到重定向/重写时,我指的是使用 Webrick 时,您必须在不同层(Rack、Sinatra、Rails、自定义 Webrick 代码等)处理重写。这需要您启动额外的 ruby“处理程序”来执行重写代码。对于低流量站点,这可能没问题,因为您可能已经预热了进程,什么都不做。然而,对于流量较高的站点,这对服务器来说是额外的负载,前端服务器(Apache、Nginx 等)可以在不启动 Ruby* 的情况下处理这些负载,而且速度可能会快几个数量级。
* 例如,如果您在负载均衡器后面运行,您可以将所有重写流量路由到未安装 ruby 的服务器,并让您的主服务器仅管理主要流量。这种重写流量可能是由于 SEO 的网站更改或类似原因造成的。另一种情况是一个具有多个组件的站点,可能一个部分是 Rails,另一个部分是 PHP,并且两者都需要重写(即重写旧的 PHP 路径到 Rails)
关于ruby-on-rails - Webrick 作为生产服务器与 Thin 或 Unicorn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859671/