ruby-on-rails - Rails Elastic Beanstalk nginx 301 重定向

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

我已经能够使用本指南成功部署和运行一个空的 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/

相关文章:

ruby-on-rails - Rails协会has_one最新记录

sql - Ruby on Rails - 查询多个模型

java - 添加 'com.amazonaws:aws-java-sdk:1.10.1'时Gradle编译错误

amazon-web-services - cloudformation将参数传递给ssm文档

php - 当我尝试将 MySql 与 php 的 mysqli 连接时出现错误 500

ruby-on-rails - 设计安装后,找不到表 'users'

ruby-on-rails - 如何将大型 gem 转换为独立的 Rails 应用程序

mongodb - 将 MongoDB Atlas 连接到 AWS 上的 Kubernetes EKS 集群

ubuntu - nginx响应或采样时间vs延迟vs连接时间与jmeter

python - nginx:[警告] 0.0.0.0:80 上的冲突服务器名称 "example.com",已忽略