【发布时间】:2014-05-05 15:18:06
【问题描述】:
我想讨论一下AngularJS 和Ruby on Rails 一起工作并部署在 AWS(亚马逊网络服务)中。
到目前为止,我有一个带有 AngularJS 前端的开发环境,它将请求发送到 Ruby on Rails API 后端。这两个都是两个独立的应用程序(它们位于不同的 git 存储库中)。
AngularJS 应用程序在 Node.js 服务器上运行,正在侦听一个端口,Rails 在 Webrick 服务器上运行,正在侦听另一个端口。
尽管它们一起工作,AngularJS 并没有物理集成到 RoR 应用程序中。
现在是在生产环境中部署的时候了。为此,我将使用 EC2 AWS 实例(当前使用 Elastic Beanstalk 进行部署)。据我了解,这里不能有相同的架构。
我想知道您在这一点上的建议。您看到任何优点或缺点吗?
我是否应该更新我的开发环境,以便将AngularJS 应用程序集成到RoR 应用程序中(并且只部署一个应用程序)?
这是我不喜欢的,因为我想我必须修改很多东西。
另一方面,是否可以像我在开发中那样单独运行两个应用程序?
我可以在同一实例中手动安装node.js 和Unicorn 或任何服务器吗?
【问题讨论】:
-
您能解释一下为什么您不能在 AWS 上拥有相同的架构吗?是因为你不能运行两台服务器吗? AWS 方面没有任何东西可以阻止这种情况的发生。事实上,我目前的工作在 AWS 上的部署几乎与此相同(不过,我们的前端托管在他们的 CloudFront 上)。
-
嗨杰森,我不是说这是不可能的。唯一的问题是我是 AWS 新手,所以到目前为止我只知道如何使用 Elastic Beanstalk 进行部署。使用 EB,如果可能的话,我不知道该怎么做。我认为为了拥有这种架构,我应该创建一个 EC2 实例并手动安装服务器。这样对吗?我该怎么做?
-
我们尝试在弹性 beanstalk 上安装 node js,但没有成功,几乎与您在 Node.js 中运行 AngularJS 应用程序和在 php 后端运行的要求相同。我们尝试使用 .ebextension 安装节点 js,但仍然存在限制和问题,我们决定手动进行。我的建议是手动进行此设置。您需要了解的有关 AWS 弹性豆茎的任何其他信息,请告诉我
-
@Rober 我不是真正的运维人员,所以我不知道如何设置 EC2 .. 至少不知道它的细节。您将需要两台服务器(或者,如果您想在不同的端口上运行这些应用程序,甚至只需要一台),一台配置为节点,一台配置为 Rails。我知道他们的 OpsWork 让部署 Rails 和 Node 之类的事情变得非常简单。从那里您只需将 Node 服务器配置为指向 Rails 服务器。
标签: ruby-on-rails ruby angularjs amazon-web-services amazon-ec2