我应该如何构建一个托管多个小型Rails应用程序的VPS?

时间:2012-02-21 13:39:06

标签: ruby-on-rails ruby vps

到目前为止,我总是将我的VPS专门用于在多个实例中运行一个应用程序,主要是使用Unicorn。这样我就可以设置整个环境,使其完全适合这个特定的应用程序,并对此感到满意。

但现在我需要构建一个VPS,它将托管多个小型Ruby应用程序。其中一些将是Rails和一些Sinatra。它们的流量基本为零(每天访问量不足100次),这意味着我甚至不需要单个应用程序的多个实例。

我真的没有其他服务器的经验,而不是unicorn + nginx,但我认为我需要的东西看起来像这样。

request to app1, gets loaded into memory and serves the request
request to app2, gets loaded into memory and serves the request
request to app3, there is not enough free memory
app1 gets killed before the app3 is booted to serve the request

我知道这不是一个完美的场景,但想象一台服务器上有10或20个小应用程序,每个应用程序每天有5次点击。他们并不需要始终保持正常运行。

据我所知,Heroku以他们的免费等级做到这一点,其中Dynos在一些空闲时间后被杀死,然后在请求进入时它们被加载回来。这基本上就是我需要在我自己的服务器上做的事情

1 个答案:

答案 0 :(得分:1)

我建议使用Apache + Passenger。默认情况下,Passenger仅在您需要时加载应用程序,例如第一个请求需要更长的时间(实际上只要加载框架就可以了。)

如果应用程序在某个预定义的时间内处于空闲状态,它将从内存中删除。

安装非常简单,添加新应用程序只需在apache配置中添加一行。