[RUBY] Möglichkeit bei der Bereitstellung auf EC2, aber im Fehlerprotokoll wird nichts angezeigt

Umgebung

Ruby 2.5.1 Rails 5.2.4.3

Ich habe die Bereitstellung für AWS abgeschlossen, indem ich auf den Artikel hier verwiesen habe. Als ich jedoch über einen Browser darauf zugegriffen habe, ist die Meldung "Keine Verbindung zu dieser Site möglich" fehlgeschlagen. Ich werde ...

(Hinweis) Der Artikel, auf den ich mich bezog, ist sehr leicht zu verstehen und nicht die Schuld des Artikels.

Lassen Sie uns das Protokoll überprüfen, das sich auf den Artikel bezieht, um festzustellen, was falsch ist.

Serverumgebung(/var/www/rails/App Name/)


cd log
tail -n 30 production.log
スクリーンショット 2020-06-26 16.18.13.png

Aus irgendeinem Grund kann ich im Protokoll keinen Fehler finden. Anfangs machte es keinen Sinn, aber nach einer Weile dachte ich, dass es möglicherweise nicht über den Browser zugänglich ist.

Also werde ich versuchen, mit curl direkt auf http zuzugreifen.

$ curl -IXGET http://IP Adresse/
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.2
Date: Sat, 27 Jun 2020 05:09:57 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://IP Adresse/

301 wird zurückgegeben. Anscheinend wurde der Zugriff auf http ohne Erlaubnis auf https umgeleitet. Ich habe es gewagt, mit Curl auf https zuzugreifen.

$ curl -IXGET https://IP Adresse/
curl: (7)Verbindung zum IP-Adressport 443 fehlgeschlagen: Connection refused

Ich war wütend, dass 433 Ports nicht verfügbar waren. Sicherlich hat die Sicherheitsgruppe 433 nicht festgelegt, daher ist dies natürlich.

Also habe ich 433 zu den eingehenden Regeln der Sicherheitsgruppe hinzugefügt, und als ich über http über einen Browser darauf zugegriffen habe, wurde die Seite mit https! (Beeindruckend)

Das ursprüngliche Ziel ist es jedoch, es mit http anstelle von https zu öffnen ...

Ergebnis

Die Ursache für die Umleitung von http nach https war die folgende Beschreibung in /config/environments/production.rb.

/config/environments/production.rb


config.force_ssl = true

Es scheint, dass dies geschrieben wurde, als es in der Heroku-Bereitstellung vor ... Damit scheint es für die SSL-Konvertierung zu https umzuleiten.

Sie können es also lokal reparieren, aber es ist mühsam, es zu pushen oder zu klonen. Schreiben Sie daher vorerst die Beschreibung auf dem Server neu und überprüfen Sie sie einfach.

$ cd /var/www/rails/Ticket-Rec/config/environments/
$ vi production.rb

Geändert wie folgt

/config/environments/production.rb


config.force_ssl = false

Starten Sie das Einhorn neu

$ ps -ef | grep unicorn | grep -v grep
hiroki 2031 1 0 26. Juni?      00:00:02 unicorn_rails master -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production
hiroki 2036 2031 0 26. Juni?      00:00:00 unicorn_rails worker[0] -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production
hiroki 2038 2031 0 26. Juni?      00:00:00 unicorn_rails worker[1] -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production

$ kill 2031
$ bundle exec unicorn_rails -c /var/www/rails/Ticket-Rec/config/unicorn.conf.rb -D -E production

Starten Sie nginx neu

$ sudo service nginx restart

Als ich wieder mit Curl auf http zugegriffen habe, wurden 200 zurückgegeben!

$ curl -IXGET http://IP Adresse/
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Sat, 27 Jun 2020 05:27:46 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
ETag: W/"03411acbf679047381b99fd0eda2307c"
Cache-Control: max-age=0, private, must-revalidate
Set-Cookie: _myapp_session=%2Fj%2FMy4fzeeSRY3imIh%2FCkJg94SzoshjfdaYZhZcEzF4i%2BxXXUZiYY8M%2Flre%2F6TAAvXqfyrr5sJ8ke2aOlhh4o8i6xsMfO7Ubp7LvUQnAxB9gm%2FbQ8Gc%2BLPzZAxcL9OgDLvQaocLN1MTSz6XKaDM%3D--1h9%2FJNHiHiktaWNU--CJuK9RUucx3dkTVkQpjYLg%3D%3D; path=/; HttpOnly
X-Request-Id: 9d2ee01e-fa05-40ae-8959-6e9b40f9b3e1
X-Runtime: 0.005877

Öffnen Sie es tatsächlich im Browser

Browser


http://IP Adresse/

Ich konnte sicher auf die App zugreifen! Herzliche Glückwünsche!

Wenn Sie es jedoch danach ssl machen, schließlich

/config/environments/production.rb


config.force_ssl = true

Es scheint auf lol eingestellt zu sein

Ich fand jedoch den Grund heraus, warum es nicht verbunden war.

Referenz

[Sorgfältig mit Bildern erklärt] So laden Sie die Rails-Anwendung von Grund auf auf AWS (EC2) hoch [Teil 1 ~ Netzwerk, RDS-Umgebungseinstellung ~]

Recommended Posts

Möglichkeit bei der Bereitstellung auf EC2, aber im Fehlerprotokoll wird nichts angezeigt
Wenn das Projekt nicht in Eclipse angezeigt wird
Fehler beim Bereitstellen von EC2
[Fehler] Die App wird in der Produktionsumgebung nicht angezeigt
Was ist zu tun, wenn in Eclipse "Fehler beim Laden der gemeinsam genutzten JNI-Bibliothek" angezeigt wird?
Wenn im Docker-Protokoll keine Ausgabe für stdout vorhanden ist
Fehler beim Bereitstellen von EC2 mit CircleCI
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
Es sollte mit dem Beispiel identisch sein, wenn Sie sich bei Twitter anmelden, es tritt jedoch ein Fehler auf, bis die Lösung behoben ist
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
[Schienen] Was tun, wenn das Refile-Bild beim Schreiben der Verarbeitung zum Zeitpunkt des Routing-Fehlers nicht angezeigt wird?
So beheben Sie den Fehler 'ActionView :: Template :: Error' (Das Asset "application.css" ist in der Asset-Pipeline nicht vorhanden. '"Beim Vorkompilieren von Rails-Assets
[Heroku] So lösen Sie, wenn ein Fehler von git push heroku master angezeigt wird
Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
Wenn Eclipse den Server nicht starten kann
Die Gerätefehlermeldung wird nicht richtig angezeigt.
[Java] In der Ausgabe wird etwas als "-0.0" angezeigt
So legen Sie die Protokollstufe fest, die in der Release-Version von orhanobut / logger angezeigt werden soll
Was tun, wenn die bereits verwendete Adresse nach dem Ausführen der Schienen angezeigt wird?
Eine Warnung wird angezeigt, wenn versucht wird, eine große Ganzzahl mit den speziellen Variablen $ 1, $ 2, $ 3 ... zu verwenden.
Wenn der Schwebeflug von Eclipse schwer zu sehen ist
Ich möchte eine TraceId in das Protokoll einbetten
Wenn die Erstellungsaktion fehlschlägt, wird keine Fehlermeldung angezeigt
So führen Sie einen bestimmten Vorgang aus, wenn die Zurück-Taste im Android-Fragment gedrückt wird
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?
So stellen Sie die Chronik ein, wenn sich die Zeit in CentOS7 verschiebt
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
Die Idee, abzuschalten, wenn der Fehler nicht behoben ist
Ein Fehler tritt auf, wenn codedeploy-agent in Ubuntu Server 20.04 installiert ist
So erhalten Sie das Protokoll, wenn install4j nicht gestartet wird
Verhalten, wenn jedes im umgekehrten Bereich ausgeführt wird
Logback-Protokoll wird nicht ausgegeben, wenn die Serveranwendung geschlossen wird
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
Affen-Patch, um die aktuelle Zeit zurückzugeben, wenn in Time.parse of Ruby eine leere Zeichenfolge angegeben ist
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
So lösen Sie das Problem, dass das Website-Image nach der Bereitstellung auf Heroku in Rails 5 nicht angezeigt wird
Einstellungen, die vorgenommen werden müssen, wenn HTML oder JSP in Eclipse formatiert sind und das Layout enttäuschend wird
Wirf eine Ausnahme und fange, wenn es keinen Handler gibt, der dem Pfad im Frühjahr entspricht
Was tun, wenn Sie die Quellposition wissen möchten, an der die Methode in bind.pry definiert ist?
Ich möchte den Rahmen des Textfelds rot machen, wenn ein Eingabefehler auftritt
So beheben Sie das Problem, dass beim Stoppen der Webanwendung kein Protokollierungsprotokoll ausgegeben wird
Statische Funktion, um zu überprüfen, ob der RGB-Fehler von BufferdImage innerhalb des angegebenen Verhältnisses in Java liegt
Was tun, wenn javax.el.ELException: Kein gültiger Methodenausdruck: wird angezeigt, wenn der JSF-Bildschirm angezeigt wird