我已经能够使用本指南成功部署和运行一个空的 Rails 应用程序:AWS Rails Elastic Beanstalk .
Region: us-west-2
Platform: 64bit Amazon Linux 2016.03 v2.1.0 running Ruby 2.3 (Puma)
Tier: WebServer-Standard
当我尝试部署和运行我的实际生产应用程序时,在添加 secret_key_base
、设置我的 postgres RDS 并将 postgis 添加到我的数据库后部署成功。但是当我导航到 url 时,服务器挂起并且请求超时。没有输出应用程序级别的日志,唯一的 puma 日志是网络 worker 启动并准备就绪。
我检查了 nginx 访问日志,发现所有尝试的请求都有状态 301
,这解释了服务器挂起和超时。
172.31.36.144 - - [30/Apr/2016:04:54:47 +0000] "GET / HTTP/1.1" 301 5 "-" "-" "66.240.219.146"
172.31.36.144 - - [30/Apr/2016:04:55:02 +0000] "GET / HTTP/1.1" 301 5 "-" "-" "66.240.219.146"
172.31.36.144 - - [30/Apr/2016:04:55:21 +0000] "GET / HTTP/1.1" 301 5 "-" "-" "66.240.219.146"
所以我认为有一个 nginx 配置错误不允许 nginx 找到我的应用程序的正确位置但不确定在哪里查看/如何更正它。这是我唯一的配置 ebextensions 文件:
option_settings:
- option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
- option_name: BUNDLE_PATH
value: "vendor/bundle"
packages:
yum:
git: []
这与我推送的示例应用程序以及我的生产应用程序相同。非常困惑为什么 nginx 配置在两个应用程序之间会有所不同,但感谢您的帮助。如果您需要更多日志或文件,请告诉我。
最佳答案
已解决。问题是我在 production.rb 中仍然有 config.force_ssl = true
行,因为在 Heroku 上启用了 ssl。不过,我必须重建环境才能使此更改生效。
关于ruby-on-rails - Rails Elastic Beanstalk nginx 301 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960588/