【问题标题】:Getting "Incomplete response received from application" in Rails在 Rails 中获取“从应用程序收到的不完整响应”
【发布时间】:2015-08-22 06:04:13
【问题描述】:

有人可以帮忙吗?我的堆栈是带有 nginx/passenger 和 ruby​​ 2.2.2 的 ubuntu-server 14.04。我无法让我的项目在生产中工作。开发中一切正常。

secrets.yml

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  secret_token: <%= ENV["SECRET_KEY_BASE"] %>

服务器

server { 
    listen 80; 
    server_name logvs.local; 
    passenger_enabled on; 
    passenger_app_env development;
    root /var/www/logvs/public; 
}

错误日志

App 2532 stderr: [ 2015-06-07 22:56:01.4724 2610/0x000000014d6b00(Worker 1) utils.rb:85 ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`) (process 2610, thread 0x000000014d6b00(Worker 1)):
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:534:in `validate_secret_key_config!'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:246:in `env_config'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/engine.rb:514:in `call'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/railties-4.2.1/lib/rails/application.rb:164:in `call'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads'
App 2532 stderr:    from /home/username/.rvm/gems/ruby-2.2.2/gems/passenger-5.0.9/lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'
[ 2015-06-07 22:56:01.4731 2508/7f6775575700 age/Hel/Req/Utils.cpp:95 ]: [Client 1-1] Sending 502 response: application did not send a complete response

编辑:我忘了说我正在使用设备进行身份验证

【问题讨论】:

  • 你定义了缺少的环境变量吗?在你这样做之前它不会运行。
  • 感谢这行代码,我可以解决我们服务器中的问题passenger_app_env development;
  • 谢谢你,passenger_app_env 也解决了我的问题。

标签: ruby-on-rails ruby nginx passenger


【解决方案1】:

我真的被这个问题困住了,因为我之前在生产服务器上遇到过这个问题,我通过设置我的 secret_key_base 来修复它。但是,现在问题开始在我的开发环境中发生。我在我的开发环境中使用 NGINX,但我仍然单独安装了 MAMP,因此 rails 应用程序使用的是 MAMP 安装的 MySQL,它似乎正在运行。然而,不知何故它有一个错误,我重新启动了 MySQL,然后它解决了这个问题。所以这是可以尝试的:确保 MySQL(或您正在使用的任何数据库)配置正确、正在运行,如果是,请尝试重新启动它。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我最终在生产服务器的.profile(或类似的)文件中手动输入环境变量。

    app error: Missing `secret_token` and `secret_key_base` for 'production' environment
    

    我在那里找到了很好的答案How to solve error "Missing `secret_key_base` for 'production' environment" (Rails 4.1)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-09
      • 2018-12-03
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 2015-08-22
      • 2015-05-28
      相关资源
      最近更新 更多