Ich konnte erfolgreich eine leere Rails-App mit dieser Anleitung bereitstellen und ausführen: AWS Rails Elastic Beanstalk.Rails Elastic Beanstalk nginx 301 Weiterleitung
Region: us-west-2
Platform: 64bit Amazon Linux 2016.03 v2.1.0 running Ruby 2.3 (Puma)
Tier: WebServer-Standard
Wenn ich versuche, meine eigentliche Produktion App zu implementieren und laufen, ist das deploy erfolgreich nach secret_key_base
Zugabe, mein Postgres RDS einrichten, und das Hinzufügen von postgis zu meiner Datenbank. Aber wenn ich zur URL navigiere, hängt der Server und die Anfrage läuft ab. Es werden keine Protokolle auf Anwendungsebene ausgegeben, und die einzigen Puma-Protokolle sind das Hochfahren der Web-Worker.
Ich überprüfte die Nginx-Zugriffsprotokolle und stellte fest, dass alle versuchten Anfragen den Status 301
hatten, was erklärt, dass der Server hängen bleibt und das Zeitlimit überschritten hat.
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"
Deshalb denke ich, dass ein nginx Konfigurationsfehler gibt es das nicht ist, so dass nginx die richtige Position meiner App zu finden, aber nicht sicher, wo sie suchen müssen/wie das zu korrigieren. Hier ist die einzige Konfigurationsdatei ebextensions ich habe:
option_settings:
- option_name: BUNDLE_DISABLE_SHARED_GEMS
value: "1"
- option_name: BUNDLE_PATH
value: "vendor/bundle"
packages:
yum:
git: []
, die die gleichen für die Beispielanwendung, die ich als auch meine Produktion App geschoben. Sehr verwirrt darüber, warum Nginx-Konfigurationen zwischen den beiden Apps unterschiedlich sind, aber jede Hilfe zu schätzen wissen. Lassen Sie es mich wissen, wenn Sie mehr Protokolle oder Dateien benötigen.
Haben Sie Ihre RDS-Sicherheitsgruppe so eingestellt, dass die Verbindung zu 5432 von der Sicherheitsgruppe Ihrer EC2-Instanzen zugelassen wird? – hephalump