ruby-on-rails - Webrick 作为生产服务器与 Thin 或 Unicorn?

标签 ruby-on-rails production-environment thin webrick unicorn

似乎人们理所当然地认为不能使用 Webrick 作为生产服务器,但我找不到任何地方提到原因。共识似乎是: “Webrick 适合开发,但 Thin 或 Unicorn 才是生产的选择。”

我确实查找了瘦服务器的主页,它谈到了每秒请求数,但我不太理解该图,因为没有注释。

谁能告诉我为什么我应该使用 Thin 或 Unicorn 而不是 Webrick?另外使用Webrick进行开发有什么好处吗?自从 Webrick 附带有 Rails 以来,我就一直在使用它,我认为它成为默认值应该有一个原因。

顺便说一句,我正在使用 Heroku。

最佳答案

几个重要原因

  1. 它是用 Ruby 编写的(请参阅 http://github.com/ruby/ruby/tree/trunk/lib/webrick )
  2. 已编辑它没有生产网站通常需要的许多功能,例如多个工作人员(特别是预 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/

相关文章:

java - 用于开发和生产的不同 URL。 (重新加载静态内容)

javascript - ES2015 转译错误;静态属性类型、显示名称;配置 webpack、babel

ruby - 在 Sinatra 本地测试 HTTPS

ruby - 如今在 ruby​​ 上制作异步 Web 应用程序有哪些好方法?

windows - 在 Windows 7 x86 上安装 Thin 时出现问题

ruby-on-rails - 由 Yard 和西类牙口音生成的文档

ruby-on-rails - 覆盖Rails 3 Engines提供的命名路由

javascript - 更新表格单元格

ruby-on-rails - 将未读的 gem 与 public_activity 一起使用

java - 为不同环境构建包的最便捷方法是什么?