2016-10-09 4 views
0

Я успешно установлены рельсы с Пассажиром + Nginx, но я испытывает Неполная ошибку ответа через веб-браузер:Неполный ответ, полученный от применения - Пассажирские и NGINX

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

Я попытался rake secrets, чтобы сгенерировать новый secret_key_base для production в моем secrets.yml файл без везения.

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"] %> 

когда я бегу curl http:0.0.0.0:3000 Я получаю от Пассажира:

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 возраст/Кор/Кон/InternalUtils.cpp: 112]: [Клиент 1-3] Отправка 502 ответа : приложение не отправило полный ответ Приложение 45674 stderr: [2016-10-09 04: 49: 56.0108 45754/0x0000000092d678 (рабочий 1) utils.rb: 87]: *** Исключение RuntimeError в объекте приложения Rack (отсутствует secret_key_base для «производственной» среды установите это значение в config/secrets.yml) (процесс 45754, поток 0x0000000092d678 (рабочий 1)): Приложение 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 ' Приложение 45674 stderr: from /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 ' Приложение 45674 stderr: from/home/garrett/.rvm/gems/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 ' Приложение 45674 stderr: from/usr/lib/ruby ​​/ vendor_ruby/phusion_passenger/request_handler/thread_handler.rb: 152: в 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: от /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 блока в create_thread_and_abort_on_exception'

У меня нет идей, чтобы получить эту работу - есть ли что-нибудь еще, что я должен проверять?

EDIT: Вот что я получаю при запуске '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_helper.rb: ENV [ 'RAILS_ENV'] || = 'тест'

+0

Чтобы решить эту проблему, проверьте https://stackoverflow.com/questions/30395157/incomplete-response-received-from-application/47234911#47234911 –

ответ

0

Для production вы должны установить все ENV (окружение) переменные, названные в любом рубине или файле конфигурации. Например, в пределах secrets.yml Rails ожидает переменную окружения SECRET_KEY_BASE. Вы не установили эту переменную, и теперь Rails не запускается в режиме production.

Вы используете asure как хостинг-провайдер. Таким образом, вы можете следовать this post , чтобы настроить переменные среды для лазурного.Короче говоря:

Добавить установку приложения в разделе

«App Настройки» Вы можете использовать rake secret для генерации нового ключа и использовать его для переменной среды.

Еще один совет. secrets.yml имеет свое название по причине. Вы не должны публиковать секреты из этого файла.

+0

Спасибо за ответ, Джек! Будет ли это так, если я не запускаю рельсы в экземпляре облака, но в автономной виртуальной машине? – GarrettG

+0

Да, для использования рекомендуется использовать переменные среды для конфиденциальных настроек. Таким образом, конфиденциальные настройки не входят в ваше репо. Более того, у него есть некоторые преимущества для развертывания (посмотрите https://12factor.net/). Если вы хотите, вы можете заменить все записи ENV в своем коде, но я бы рекомендовал против него. – slowjack2k

+0

Привет, Джек. Какие файлы следует искать, чтобы исправить мою проблему? – GarrettG

0

После долгих исследований проблема была в файле hba_config. Для разрешения md5 необходимо было установить «доверять».

Я не уверен, что это решение является «полным» исправлением, но оно работает в моем случае.