【问题标题】:Deploying Rails to Elastic Beanstalk, nodejs?将 Rails 部署到 Elastic Beanstalk、nodejs?
【发布时间】:2015-09-18 07:19:07
【问题描述】:

我想通过 AWS 将我的应用程序托管在 VPC EC2 实例上,文档中的这一行让我有些困惑:

安装 nodejs 让 Rails 服务器在本地运行:

$ sudo apt-get install nodejs

我只是想知道为什么我需要nodejs,更不用说允许rails服务器在本地运行,因为我认为这已经由WEBrick处理了。

这是相关文档的链接:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html

【问题讨论】:

    标签: ruby-on-rails node.js amazon-web-services amazon-ec2 hosting


    【解决方案1】:

    问题的标题不清楚。 Elasticbeanstalk 使用 EC2 实例,但您不应该直接通过 ssh 进入 EC2 服务器进行更改。

    Elasticbeanstalk 将销毁并创建 EC2 实例,以随着进入应用程序的 Web 流量进行扩展。对一个特定实例进行更改并不能保证它会对属于一个 Elasticbeanstalk 应用程序的所有 EC2 实例进行更改。

    此外,在部署、重建或缩减应用程序时,该特定实例也可能被销毁。

    如果您在 Elasticbeanstalk 上使用 Ruby 平台,则需要使用其内置的 EB 扩展程序来运行命令来安装节点或使用 yum 包管理器来安装它。

    这里是描述 yum 方法的文档:

    https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-packages

    【讨论】:

      【解决方案2】:

      Rails 对某些任务(生成脚手架和编译模板等)使用 Javascript 运行时。您不需要使用 nodejs,您可以在 Gemfile 中添加其他运行时作为 gem,例如therubyracertherubyrhino。 (EC2 上的 YMMV,如果它建议使用 nodejs,我会安装它,除非你有充分的理由不这样做)

      【讨论】:

      • 嗯,我现在有点困惑,为什么我以前在heroku上部署rails应用时没有遇到过这样的事情?
      • 另外,从我读过的关于 nodejs 的内容来看,它似乎被使用 而不是 rails,这也让我有些困惑
      • 我还要补充一点,我使用的是 osx 而不是本教程所基于的 ubuntu,这有什么不同吗?
      • 我认为 heroku 可能默认有一个 JS 运行时可用。 NodeJS 可用于创建 Web 应用程序,但也可用于执行任何用 javascript 编写的应用程序。在 osx 或 ubuntu 上,您需要有一个用于 Rails 的 JavaScript 运行时。 Rails 使用execJS,如果您查阅那里的文档,它应该会有所帮助。
      • 啊,好的,谢谢@Slicedpan,这开始变得更有意义了。如果您不介意回答另一个问题...此运行时是否仅用于非本地托管?我没有在我的 gemfile 中声明任何运行时,但我仍然能够设置一个 localhost rails 服务器。还有你在说什么文档(rails?execJS?)。
      猜你喜欢
      • 2018-06-06
      • 2016-09-24
      • 2018-06-11
      • 2019-02-22
      • 2016-03-09
      • 2020-03-24
      • 2016-03-04
      • 2019-11-22
      • 2012-11-13
      相关资源
      最近更新 更多