【问题标题】:Run Rails application in AWS Cloud9在 AWS Cloud9 中运行 Rails 应用程序
【发布时间】:2019-04-30 03:32:14
【问题描述】:

最近我将我的工作区从旧 Cloud9 迁移到 AWS Cloud9。现在我不能再运行我的应用程序了。我希望 Stack Overflow 上的某个人可能知道问题出在哪里,因为 AWS 的帮助论坛和文档跳过了我缺少的部分。

“运行”按钮尝试运行我正在查看和编辑的最后一个文件,而不是我的整个应用程序。

所以我尝试使用“rails s -b $IP -p $PORT”在终端中启动它。我明白了这一行:

Listening on tcp://127.0.0.1:8080

所以程序应该正在运行,对吧?但是绿色的“运行”按钮现在被禁用了,而且我在终端窗口中没有看到以前在旧 Cloud9 中看到的旋转图标。

接下来我尝试从“共享”菜单中获取应用程序的 url,即:

18.212.63.5

当我尝试在另一个窗口中导航到此 url 时,出现错误

ERR_CONNECTION_TIMED_OUT

当我尝试使用 IDE “预览正在运行的应用程序”时,出现错误

66af0558a4b44f8bb019cb5628f6b28f.vfs.cloud9.us-east-1.amazonaws.com refused to connect.

在相关新闻中,由于许多其他原因,我对 AWS 感到非常沮丧。我应该考虑切换到不同的 IDE 吗?还是继续努力学习这个?

提前感谢您提供任何见解。

【问题讨论】:

  • 您真的需要 IDE 还是现阶段的拐杖?使用 Atom 和 shell 很容易搞定。
  • 在 AWS Cloud9 中,它将创建一个运行 IDE 的 Ec2 实例,默认情况下它只会打开 80 和 22 端口,我猜你的应用程序正在侦听 8080 端口,这会超时,要么尝试在 80 端口上运行您的应用程序,要么打开安全端口。

标签: ruby-on-rails amazon-web-services aws-cloud9


【解决方案1】:

另请参阅https://forums.aws.amazon.com/thread.jspa?messageID=899522,它提供了一组诊断命令,您可以从 AWS Cloud9 IDE 中的终端会话为您的开发环境运行这些命令,这些命令可以输出环境关联 Amazon EC2 实例的安全组的传入流量规则,以及网络 ACL。这些流量规则需要允许正确协议和端口的传入流量。

【讨论】:

  • 哈哈。这是我在 AWS 论坛中发起的主题。你一定是那个在那条帖子里非常有帮助的保罗。
  • 同样无法在 c9 浏览器中查看,但可以在单独的浏览器中查看预览 url。为了测试端口问题,我没有尝试使用 rails,而是通过在我的 rails 应用程序目录中创建 index.html 并运行 python -m SimpleHTTPServer 8080 来尝试使用 python。我能够查看 index.html 的内容,所以我猜问题一定出在 rails 端口配置上。
【解决方案2】:

我有一个我认为是类似的问题。如果应用通过 http 而非 https 提供服务,预览将不会显示:

https://docs.aws.amazon.com/cloud9/latest/user-guide/troubleshooting.html#troubleshooting-app-preview-http

这里的一个简单解决方法是从“拒绝连接”错误中列出的 amazonaws.com URL 中删除“s”,然后按下按钮在浏览器选项卡中预览应用程序。

另请注意,在 AWS C9 上您不需要

rails s -b $IP -p $PORT

通常应该足够了

rails server

(尽管检查,例如,您的 puma.rb 文件设置为在端口 8080 而不是 3000 上运行)

【讨论】:

  • 感谢您的回复。但这不是为我解决问题。出于某种原因,当我将预览弹出到新窗口时,它对我有用,而不是尝试在 IDE 界面中查看它。但不管有没有“s”都可以。
猜你喜欢
  • 2018-05-30
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多