ElasticBeanstalk 和 Rails - 部署应用程序但只得到 404 Not Found nginx/1.4.3

Posted

技术标签:

【中文标题】ElasticBeanstalk 和 Rails - 部署应用程序但只得到 404 Not Found nginx/1.4.3【英文标题】:ElasticBeanstalk and Rails - Deploying app but only getting 404 Not Found nginx/1.4.3 【发布时间】:2014-03-11 19:15:10 【问题描述】:

我一直在尝试使用 EB 将我开发的一个简单应用程序部署到 AWS。该应用程序在我的本地计算机上运行没有任何问题,但是当我初始化并部署到 EB 时,没有任何反应。我不断收到带有文本“nginx/1.4.3”的 404 Not Found 页面。

至于我的 Rails 应用程序,我使用的是 Rails v4.0.1 和 Ruby 2.0.0(虽然我已经切换到 1.9.3 并且一切正常)。我已经在本地机器上成功使用了Passenger和WEBrick。

当我将应用推送到我的 EB 环境时,我在事件日志中收到以下错误:

[Instance: i-09add427 Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Error occurred during build: Command hooks failed .

我不知道是什么原因造成的。此链接 (Deploying Rails with Elastic Beanstalk 404 Not Found Error) 上的建议没有帮助。

这是我的 eb 状态:

URL     : app-env-f9xtrrcpch.elasticbeanstalk.com
Status      : Ready
Health      : Green
Environment Name: app-env
Environment ID  : e-fjvq2ztbxh
Environment Tier: WebServer::Standard::1.0
Solution Stack  : 64bit Amazon Linux 2013.09 running Ruby 1.9.3
Version Label   : git-3ea95ce5ee91763bee8a9f2f5987a023725d9af1-1392264246964
Date Created    : 2014-02-12 22:03:10
Date Updated    : 2014-02-12 23:04:31
Description : 

我怀疑可能导致这种情况的原因是:

.ebextensions/myapp.config 文件(我需要在这里需要 gems 吗?)

Rails 版本

一些Passenger/Nginx配置文件。

非常感谢任何和所有的帮助。我很乐意提供更多信息。

【问题讨论】:

我有同样的问题,除了我的应用程序运行得很好......但这让我很困扰......有人知道如何解决这个问题吗?? 【参考方案1】:

错误消息“Command hooks failed”表示部署失败。 Elastic Beanstalk 运行一组脚本(挂钩),用于捆绑、迁移和部署您的应用程序。其中一个步骤失败了,您需要检查哪一个。 从您的亚马逊 EB 控制台,您需要下载您的日志。在那里你会找到directory-hooks-executor.log,实际的错误就在其中。

【讨论】:

以上是关于ElasticBeanstalk 和 Rails - 部署应用程序但只得到 404 Not Found nginx/1.4.3的主要内容,如果未能解决你的问题,请参考以下文章

无法在 ElasticBeanstalk 上部署 Rails 5 VueJS 应用程序

Rails 部署到 AWS ElasticBeanstalk/RDS 失败

Rails + Elastic Beanstalk + Passenger:更改乘客配置

Elastic beanstalk [Rails] 部署问题 - 无法分配内存

Amazon ElasticBeanstalk 上的 Ruby on Rails 部署:签名过期错误

Rails:如何为 AWS Elasticbeanstalk 应用程序获取 puma 3.11?