2016-10-09 2 views
0

Ich habe Schienen mit Sozius + Nginx erfolgreich installiert, aber erlebe eine unvollständige Antwort Fehler über den Webbrowser:unvollständige Antwort erhalten von der Anwendung - Passenger & NGINX

http://tenklakes.northcentralus.cloudapp.azure.com/

ich rake secrets versucht haben, ein neues zu erzeugen secret_key_base für production in meiner secrets.yml Datei ohne Glück.

Secrets.yml:

development: secret_key_base:c70c590cfe799087c47528016ab49a1a8e57fe2eb851639e27e2ea66f92f241a0400b3d4247e3d61a6c82818dd3988825deeb66e783ba90cfccfbc0c500d6dbd

test: secret_key_base: 08b1ebf5defee2eb1ad196e9780ae118f256c9f40f40f76674451dac4dfb1c42b75f04d22ee264644711de4e547ac8f58031e88f09c5c7223834b99230fb205c

# Do not keep production secrets in the repository, 
# instead read values from the environment. 
production: 
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

wenn ich curl http:0.0.0.0:3000 betreibe ich folgendes von Passagier erhalten:

Started GET "/" for 127.0.0.1 at 2016-10-09 04:52:43 +0000 Processing by Rails::WelcomeController#index as */* Parameters: {"internal"=>true} Rendering /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb Rendered /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb (2.5ms) Completed 200 OK in 10ms (Views: 6.2ms | ActiveRecord: 0.0ms)

NGINX error.log:

[2016.10.09 04: 49: 44,8271 45647/7fe3b30d4700 Alter/Cor/Con/InternalUtils.cpp: 112]: [Client 1-3] Senden 502 Antwort : Anwendung hat keine vollständige Antwort gesendet App 45674 stderr: [2016-10-09 04: 49: 56.0108 45754/0x0000000092d678 (Worker 1) utils.rb: 87]: *** Ausnahme RuntimeError im Rack-Anwendungsobjekt (Fehlende secret_key_base für 'production' Umgebung, setzen Sie diesen Wert in config/secrets.yml) (Prozess 45754, Thread 0x0000000092d678 (Worker 1)): App 45674 stderr: from /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties- 5.0.0.1/lib/rails/application.rb:513:in validate_secret_key_config!' App 45674 stderr: from /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:246:in env_config ' App 45674 stderr: aus /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb:693:in build_request' App 45674 stderr: from /home/garrett/.rvm/gems/ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/application.rb:521:in build_request ' App 45674 stderr: aus/home/garrett/.rvm/edelsteine ​​/ ruby-2.3.0/gems/railties-5.0.0.1/lib/rails/engine.rb: 521: in call' App 45674 stderr: from /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:97:in process_request ' App 45674 stderr: von/usr/lib/ruby ​​/ vendor_ruby/phusion_passenger/request_handler/thread_handler.rb: 152: in accept_and_process_next_request' App 45674 stderr: from /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:113:in main_loop ' App 45674 stderr: von /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:416:in block (3 levels) in start_threads' App 45674 stderr: from /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in Block in create_thread_and_abort_on_exception'

Ich habe keine Ideen, um das funktionieren zu lassen - sollte ich noch etwas überprüfen?

EDIT: Hier ist, was ich bekomme, wenn 'grep -r ENV *'

[email protected]:~/lakemag$ grep -r ENV * 
bin/bundle:ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 
config/database.yml: pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 
config/database.yml:#  url: <%= ENV['DATABASE_URL'] %> 
config/database.yml: password: <%= ENV['LAKEMAG_DATABASE_PASSWORD'] %> 
config/puma.rb:threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i 
config/puma.rb:port  ENV.fetch("PORT") { 3000 } 
config/puma.rb:environment ENV.fetch("RAILS_ENV") { "development" } 
config/puma.rb:# workers ENV.fetch("WEB_CONCURRENCY") { 2 } 
config/environments/production.rb: # config.secret_key_base = ENV["SECRET_KEY_BASE"] 
config/environments/production.rb: config.secret_key_base = ENV["SECRET_KEY_BASE"] 
config/environments/production.rb: config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? 
config/environments/production.rb: if ENV["RAILS_LOG_TO_STDOUT"].present? 
config/boot.rb:ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) 
config/secrets.yml: secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

Test/test_helper.rb ausgeführt wird: ENV [ 'RAILS_ENV'] || = 'test'

+0

Um dieses Problem zu beheben, überprüfen Sie https://stackoverflow.com/questions/30395157/incomplete-response-received-from-application/47234911#47234911 –

Antwort

0

Für production Modus müssen Sie alle ENV (Umwelt) Variablen in einer beliebigen Ruby oder Config-Datei benannt. Zum Beispiel innerhalb secrets.yml Rails erwartet eine Umgebungsvariable SECRET_KEY_BASE. Sie haben diese Variable nicht gesetzt und Rails startet jetzt nicht im production Modus.

Sie verwenden Asure als Hosting-Provider. So können Sie this post folgen, um Umgebungsvariablen für azure einzurichten.Kurz gesagt:

eine App Einstellung hinzufügen im „App Einstellungen“

Sie rake secret verwenden können, um einen neuen Schlüssel zu generieren und für die Umgebungsvariable verwenden.

Noch ein Hinweis. secrets.yml hat seinen Namen aus einem Grund. Sie sollten keine Geheimnisse aus dieser Datei veröffentlichen.

+0

Danke für die Antwort, Jack! Wäre das immer noch der Fall, wenn ich keine Rails in einer Cloud-Instanz, sondern in einer eigenständigen VM laufe? – GarrettG

+0

Ja, es wird empfohlen, in der Produktion Umgebungsvariablen für vertrauliche Einstellungen zu verwenden. Auf diese Weise gehen vertrauliche Einstellungen nicht in Ihren Repo. Darüber hinaus hat es einige Vorteile für die Bereitstellung (siehe https://12factor.net/). Wenn Sie möchten, können Sie alle ENV-Einträge in Ihrem Code ersetzen, aber ich würde es empfehlen. – slowjack2k

+0

Hallo Jack. Welche Dateien sollte ich suchen, um mein Problem zu beheben? – GarrettG

0

Nach viel Recherche war das Problem in der Datei hba_config. MD5-Berechtigungen müssen stattdessen auf "Vertrauen" gesetzt werden.

Ich bin mir nicht sicher, ob diese Lösung eine "vollständige" Lösung ist, aber es hat in meinem Fall funktioniert.

Verwandte Themen