【问题标题】:Rails Elastic Beanstalk nginx 301 redirectRails Elastic Beanstalk nginx 301 重定向
【发布时间】:2016-08-25 22:16:47
【问题描述】:

我已经能够使用本指南成功部署和运行一个空的 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 日志是网络工作者正在启动并准备就绪。

我检查了 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 配置会有所不同,但感谢任何帮助。如果您需要更多日志或文件,请告诉我。

【问题讨论】:

  • 您是否将 RDS 安全组设置为允许从 EC2 实例的安全组连接到 5432?

标签: ruby-on-rails amazon-web-services nginx amazon-elastic-beanstalk


【解决方案1】:

解决了。问题是我仍然在 production.rb 中有 config.force_ssl = true 行,因为在 Heroku 上启用了 ssl。不过,我必须重建环境才能使此更改生效。

【讨论】:

    猜你喜欢
    • 2016-09-25
    • 2018-05-02
    • 2018-01-07
    • 2020-10-29
    • 2019-01-24
    • 1970-01-01
    • 2016-06-19
    • 2017-02-04
    相关资源
    最近更新 更多