适用于RubyOnRails应用程序的Thin + Nginx Production组合

时间:2009-02-17 05:06:26

标签: ruby-on-rails deployment nginx thin

我最近在部署服务器上安装了Nginx + Thin,但我不确定这在最后的请求中是如何执行的。回应情况。假设每秒1000 / req。

所以薄的速度很好,每秒10-100 req

我想了解在请求/响应群集上处理的更多数据。

指导我: - )

2 个答案:

答案 0 :(得分:3)

多个精简进程和nginx能够提供很多速度,具体取决于您的应用程序正在执行的操作。因此,问题将是您的应用程序代码,应用程序服务器的速度以及数据库服务器。

最近,Scaling Rails Screencasts深入探讨了缩放Rails。我建议你从那里开始。我缩放Rails的5步程序将是:

  1. 第一步是让工具查看应用程序中的速度。当您不知道问题所在时,不要花时间优化应用程序中的所有内容。
  2. 能够处理大量请求/秒的最简单方法是使用页面缓存。
  3. 如果你不能这样做,请尽可能缓存一切(片段缓存,使用memcached缓存数据等),以加快你的应用程序。
  4. 之后,尽可能优化您的应用程序,快速进行SQL查询,索引所有内容等。
  5. 如果您仍需要更高的速度,请在问题上投入更多硬件。获得一个强大的大型数据库服务器,一堆应用服务器,并在它们之间代理您的请求。你也可以从这里开始,但它只会延迟优化过程。

答案 1 :(得分:0)

如果您有一台服务器,我认为除了已经提到的所有内容之外,主要关键是不要吝啬它的规格。试图过多地运行太少只会导致灾难。

让monit或God监控你的瘦实例也是一个好主意,我从上帝开始,但它在Ruby 1.8.6上泄露内存非常糟糕所以我不再使用它来支持monit。 Monit是用C语言编写的,我相信并且内存占用很少,所以我建议使用它。

如果所有这些看起来有点像保持nginx和精简,你可能想要查看像Passenger或LiteSpeed这样的一体化解决方案。我对这些经验很少,所以不能为他们提供任何经济建议。