我已经能够使用本指南成功部署和运行空的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日志是Web工作人员启动并准备就绪。
我检查了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配置在两个应用程序之间会有所不同,但感谢任何帮助。如果您需要更多日志或文件,请告诉我。
答案 0 :(得分:7)
解决。问题是我在生产过程中仍然使用了生成ssl的生产线config.force_ssl = true
。我不得不重建环境以使此更改生效。