【发布时间】:2011-11-03 15:02:01
【问题描述】:
我需要为 Rails 应用程序设置专用服务器。我不确定什么是最好的方法。我需要一个可以随着大量用户在网站上注册而扩展的解决方案。我猜这将是一个中等规模的应用程序。
这里有更具体的问题:
- 操作系统可能是 ubuntu 10。我应该选择 ubuntu 10.04 还是 10.10?
- 我应该使用 sudo 安装 ruby 以及应用程序的所有 gem,还是应该使用 rvm?如果 rvm 安装没有成本,我认为这将是首选,因为它具有更大的灵活性,但使用 rvm 是否是生产服务器的良好解决方案?我真的不知道这个
- 我应该使用 nginx/unicorn,还是 nginx/passenger,还是 apache/passenger,还是别的什么?
- 我需要一个可扩展的数据库,所以 postgres 可能会比 mysql 更好。还是我应该选择其他东西,或者在这里改变我的偏好?
一个相关的问题,虽然与这篇文章没有直接关系:我通常总是使用 sudo 在系统范围内安装一个 ruby,然后安装 libssl 之类的软件包,然后使用 rvm 安装其他软件包,而不使用 sudo。这是正确的方法吗,还是我可以直接使用 rvm 安装我需要的所有 rubies,而无需在系统范围内安装一个?
【问题讨论】:
-
所有这些问题的答案都是“确定的”,除非您可以提供有关您正在部署的应用程序类型的更多上下文。这就像“我需要一辆车,我应该买什么车?”一样笼统
-
绝对使用 rvm。我上次检查时不推荐使用 ruby 的 Ubuntu 软件包(它们曾经安装 ooooooold 版本的 ruby)。 Rvm 允许您在系统范围和仅限一个用户的安装之间进行选择。但正如@tadman 所说,您确实应该更具体地了解您的需求、您希望您的应用能够承受什么样的负载、它的用途是什么等。
-
@tadman 和 m_x:用于中等规模的应用程序。实际上 ubuntu 版本,或者如果我们使用 taht 的 centos 版本并不重要,更重要的问题是 rvm 是否应该与 sudo 一起使用,或者没有,或者我应该使用没有 rvm 的 ruby。然后,在 Rails 社区中,nginx 是否比 apache 更受欢迎,反之亦然。为什么?
-
我认为使用 rvm 作为 root 很好,并且没有任何问题。
rvm在安装正确版本的 Ruby 并对其进行修补方面会比您使用的任何发行版做得更好。 -
尽量少用root。当然,您的应用程序绝对不应以 root 身份运行。
标签: ruby-on-rails ruby stack production