[RUBY] Puma --Nignx ist ein Fluchtweg, wenn die Schienen in der Umgebung nicht funktionieren

Annahme

Wird mit Rails6 + Puma + Nginx auf EC2 bereitgestellt Und an der Klemme SSH an EC2 angeschlossen

rails s -e production 

Dann wird der Dienst problemlos angezeigt

rails s -e production -d

Dann wird der Fehlerbildschirm angezeigt?

Ja ~ Ich bin immer noch mit SSH verbunden, um den Dienst am Laufen zu halten

Es ist für Sie, die Probleme haben!

Lösung

In config / puma.rb im Stammordner von Rails

config/puma.rb


daemonize

Ich werde es hinzufügen! mit diesem

rails s -e production -d

Ich kann es nicht starten

rails s -e production 

Dies macht es zu einem Daemon, also ist es eine Lösung!

Leute, die denken, dass dies selbst lokal als Dämon unpraktisch ist

config/puma.rb


if Rails.env == 'production'
  daemonize
end

Lass uns schreiben! Es ist eine Problemumgehung, an die jeder denken kann! Es tut mir leid, es so zu schreiben, wie ich es wusste!

Ursache

Ich habe es nicht vollständig untersucht, aber als Ergebnis eines Netzsurfers und des Tauchens im Meer von Google scheint es, dass puma.rb nicht geladen wird, wenn es mit "Rails s -d" in Puma dämonisiert wird. Als ich mit Rails s -e Production -d begann, konnte ich keine Verbindung zum Nginx-Fehlerprotokoll herstellen, da der Socket in puma.rb eingestellt war! Weil es beschrieben wird, denke ich, dass es wahrscheinlich passt.

Dieser Typ ist schlecht! Bitte weisen Sie auf Punkte hin!

Recommended Posts

Puma --Nignx ist ein Fluchtweg, wenn die Schienen in der Umgebung nicht funktionieren
[Anfänger] Wenn Schienen nicht funktionieren
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
[Schienen] Über den Fehler, dass das Bild nicht in der Produktionsumgebung angezeigt wird
Rails5.1 + Puma SSL-Verbindung in lokaler Produktionsumgebung
SSL in der lokalen Umgebung von Docker / Rails / Puma
[Fehler] Die App wird in der Produktionsumgebung nicht angezeigt
Es funktioniert nicht, wenn der Map-Schlüssel ein Array ist
Der Exit-Code 1 tritt auf, wenn Rails in der Docker-Umgebung gestoppt wird
Der Haltepunkt funktioniert nicht, wenn Rails Minitest im Ruby Test Explorer ausgeführt wird
Pay.JP-Lösung, wenn sie lokal funktioniert, aber in der Produktionsumgebung nicht gut funktioniert
Gibt es einen Ingenieur, der die Json-Spalte in Rails nicht validiert hat?