部署一个小型的Rails应用程序 – build议?

我们一直在为我们的学校决赛项目制作一个小小的Ruby On Rails(ruby 1.8,rails 3.0.1)系统; 在开发过程中,我们一直在testing我们的开发机器和我们局域网上运行WEBrick的Linux服务器。 对于部署,我们已经给了一个运行Debian squeeze / sid的VPS,并且免费提供。 部署选项(换句话说:“自己搞清楚:)”)。

该网站将不会有大量的stream量,所以运行部署的WEBrick可能会工作 – 但它感觉不对,考虑到这是一个学习项目,我们希望至less半正确地做的东西。 另外, 我们需要gzip压缩 ,因为rails应用程序的一部分是一个json web服务,它将提供适量的数据 – 而据我所知,ruby服务器通常不支持这一点。

过去几天我一直在做大量的search,以调查各种选项,而且zowie有很多! 我唯一预先排除的是Apache,主要是因为我想尝试新的东西,部分原因是因为它感觉有点笨重

现在我正在调查cherokee + Thin ,这看起来很不错,但如果有更适合的东西,我会非常乐于提供build议。 我遇到了lighttpd,hiawata和nginx服务器,并且我看到了杂种,乘客和独angular兽ruby服务器的提及 – 这里肯定有很多可能的组合!

为了进行testing,我们目前设置了SSH隧道,并使用etc / hosts将appname.local映射到127.0.0.1 – 注册正确的域名并在防火墙中打孔将在稍后进行。 其主要含义是httpd在端口80上运行,但由于SSH隧道, Host: HTTP请求头的一部分包含隧道端口号。

为了有希望将这些文字转换成适当的文章,这里有一些问题:

  1. 当在另一个httpd“前端”后面使用Thin ruby​​服务器时,单个实例可以处理(不排队)多个并发的rails请求,还是只能在它被用作前端时才能这样做? 我应该在不同的端口上使用它们的池吗?
  2. 目前,我们正在将rails应用程序放在/ var / rails / appname ,并将/ var / rails / appname / public链接到/ var / www / appname ,并将所有权都www-data 。 这个布局是否有意义?
  3. 系统中有一些框架控制的302redirect,特别是wrt。 用户授权。 当直接连接到WEBrick或Thin时,事情按预期工作。 当通过切诺基连接时,出于某种原因隧道端口号从Location:响应报头中被剥离。 任何想法为什么发生这种情况?
  4. 每当切诺基重新启动时,第一个对Rails应用程序的请求会给出一个“502坏的网关”HTTP错误,大概是因为瘦服务器是需求启动的。 任何方式来摆脱这个最初的502?

今天最好的实践方式是与Capistrano (弗拉德)和乘客用nginx / apache(nginx更快,Apache更常见)部署轨道。 我正在运行一些温和的交通轨道网站这样的设置,它运行顺利
一些说明:
Ruby企业版更快。
– Ruby 1.92更快
– 如果你是内存受限(VPS),使用nginx

至于你的问题:
是的,可以。
2.与capistrano,把东西当前和释放目录(以允许回滚)。 为什么符号链接? 公共属于应用程序。
这是切诺基的错误
4.保持单独的stream程,在某个stream程pipe理员的监督下。