设置专用的rails生产服务器

时间:2011-11-03 15:02:01

标签: ruby-on-rails ruby stack production

我需要为Rails应用程序设置专用服务器。我不确定这是什么最好的方法。我需要一个可以在很多用户注册网站的情况下扩展的解决方案。我想这将是一个中等规模的应用程序。

以下是更具体的问题:

  • 操作系统可能是ubuntu 10.我应该选择ubuntu 10.04还是10.10?
  • 我应该使用sudo安装ruby,因此应用所有宝石,还是应该使用rvm?如果没有rvm安装的成本,我认为这将是首选,因为它具有更大的灵活性,但是使用rvm是生产服务器的一个很好的解决方案?我真的不知道这个
  • 我应该使用nginx / unicorn,还是nginx / passenger,apache / passenger或其他什么?
  • 我需要一个可扩展的数据库,所以postgres可能比mysql更好。或者我应该选择别的东西,还是改变我的偏好?

一个相关的问题,虽然与这篇文章没有直接关系:我通常总是使用sudo在系统范围内安装一个ruby,并安装libssl或其他类似的软件包,然后使用不带sudo的rvm安装其他软件包。这是正确的方法,还是我可以直接安装我需要的rvm所有红宝石,而不需要在系统范围内安装?

4 个答案:

答案 0 :(得分:6)

我上周才陷入同样的​​困境,我采取的解决方案是遵循Railscasts #335 Deploying to a VPS

Ryan Bates将指导您完成部署到VPS的棘手步骤,但我已部署到我在家中设置的专用服务器以了解部署过程。

他使用以下设置:

  • Ubuntu(10.04 LTS)
  • nginx(1.0.14)
  • Unicorn(4.2.0)
  • PostgreSQL(9.1.3)
  • Postfix
  • rbenv
  • rbenv-installer
  • Capistrano的

就个人而言,我更适合使用MySQL,因此很容易使用它代替PostgreSQL。我也使用过Ubuntu 12.04。

不可否认,我确实支付了5美元的订阅费。但说实话,其他教程也更深入地介绍了部署的棘手部分。他为您提供了源代码,并提供了其他方面的帮助,例如好的工具(例如 rbenv-installer )。 这也让我使用rbenv而不是RVM,就像我之前使用的那样,到目前为止,我没有遇到任何问题。

我做过的一件事虽然匆匆而且必须找到一些外部输入是独角兽,但是this post以及Capistrano上的Railscast帮我指出了它。

祝你好运

答案 1 :(得分:4)

答案 2 :(得分:1)

我选择独角兽而不是乘客,只是因为乘客仍然没有提供滚动重启。

这意味着无论何时部署,所有实例都会同时被删除,然后重新启动。您不会删除任何请求,但在部署时,任何人都可以获得10-20秒的页面加载。

答案 3 :(得分:0)

您的帖子包含多个问题,请让我逐一解决。

RVM

我使用RVM(标准设置,而不是root用户)在生产中运行Rails应用程序。到目前为止,我没有遇到任何问题。

临:

  • 与开发机器相同的环境很容易
  • Ruby和Gem版本的灵活性更高

缺点:

  • Cron作业或shell脚本可能需要更多关注(参见here)。但是,我没有遇到任何大问题

也许你可以提供一些你所听到的问题的更多细节?

OS

正如其他人已经指出的那样,这并不重要。就个人而言,我更喜欢Ubuntu LTS版本的服务器。最近的一个是Ubuntu 12.04 LTS,所以我会那样做。

Web服务器,数据库

根据您提供的少量信息,这真的很难说。您列出的选项都有其优点和缺点,但我不确定它们在项目的这个阶段对您是否真正重要。

我建议您选择最熟悉的技术。 (如果您不熟悉其中任何一个,请选择Apache / Passenger和MySQL。)稍后当您拥有数千名用户时,您可以随时切换。只是不要在预先优化架构方面投入太多精力。得到一些东西并运行!