1

我即将部署我的第一个 Rails 应用程序。我被困住了,因为我不知道我到底需要做什么。我知道 Heroku、AWS、Capistrano 等,但不知道它们的具体用途以及它们的好处。

我有点知道一些事情,但由于我没有接受过正规培训并且边走边学,因此所有事情都很模糊和模棱两可。所以基本上我需要有人来解释一下 Rails 部署的大体结构。

像这样的:'要让任何应用程序在 Web 上运行,您需要以下组件......使该组件与 Rails 一起工作的方法如下。替代品是这些。这些都是优点和缺点。没有太多细节,而是一般和全面的 101 指南。

4

3 回答 3

3

您可能会感到困惑的原因是有很多方法可以做到这一点。:D

Heroku 为基本部署提供了最简单的解决方案之一。你不需要 capistrano,只需要 git。(他们提供了一个工具集来协助)。只需 git push heroku master。同样不错的是,heroku 上的简单部署是免费的;您可以在实际需要时支付更多电量。

但是,如果您需要一些 heroku 无法提供的额外功能,则必须在其他地方托管,例如私有虚拟主机。

Capistrano 是一组帮助构建部署环境的方法,有点像 rake 任务。它以非常有条理的方式执行此操作,并允许轻松回滚。您定义主机、它们的角色,然后配方使用 ssh 和 scp 来设置环境。(服务器还必须准备好通过乘客等方式接受 Rails 应用程序)

于 2012-10-18T14:23:20.907 回答
2

Rails 和 Ruby 世界非常嘈杂,所以我理解您的困惑。

归根结底,您需要在服务器上安装您的 rails应用程序

现在,即使是术语服务器也可能有点混乱,因为它通常与

  1. 远程机器
  2. 处理 HTTP 请求的程序。(例如您在计算机上开发并键入rails s时启动的webrick 或 Thin

在您的情况下,您实际上想要一台远程计算机(连接到网络),该计算机正在运行一个称为服务器的程序来处理 HTTP 请求并将这些转发到您的应用程序,这反过来会产生一个请求......

Heroku会帮你解决这个问题。(但是 Heroku 增加了几层抽象。所以它不像你有一台计算机坐在 heroku 办公室的某个地方,为你的应用程序服务。) Heroku 使用 git 和 rails 设置起来非常简单。最后,将您的应用程序发送到“远程服务器”所需要做的就是一个简单的git push。

阅读https://devcenter.heroku.com/上的初学者文章

我现在也建议:忘记Capistrano

哦,您可以将AWS(或者可能是 S3)视为某种外部硬盘驱动器,您的应用程序可以使用它来存储更​​大的数据(如图像、视频等)

于 2012-10-18T14:20:16.260 回答
0

我有一个部署指南,其中包含一个支持 Nginx + RVM + Unicorn 的良好 shell 脚本:deploy_rails

于 2014-02-28T02:21:23.987 回答