从开发到生产,乘客无法连接到应用程序

时间:2017-12-25 12:53:54

标签: ruby-on-rails nginx devise passenger

当我改变时

    passenger_enabled on;
    rails_env         development;

关注状态为Default: rails_env production;

passenger documentation
    passenger_enabled on;
    rails_env         production;
使用nginx,nginx error.log寄存器

在Ubuntu 16.04上跟随sudo service nginx restart
Could not spawn process for application [...]/current: An error occurred while starting up the preloader  
Message from application: undefined method `skip_authorization_check' for SessionsController:Class

关于sessions_controller方法skip_authorization_check的动机,这是设计认证宝石使用的方法......我不相信这是错误的真正来源,因为乘客在开发模式下完成其工作。事实上,恢复到开发会按预期运行所有功能,并以非https方式运行。

我缺少什么?

更新按照回答中的建议,获取以下内容来监控nginx进程

ps aux|grep nginx root     10373  0.0  0.2 180124  5756 ?        Ss   14:26   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; 
www-data 10378  0.0  0.6 180480 13336 ?        S    14:26   0:00 nginx: worker process 
www-data 10381  0.0  0.5 180124 11404 ?        S    14:26   0:00 nginx: worker process 
deploy   16182 0.0  0.0  12944   896 pts/0    S+   16:49   0:00 grep --color=auto nginx

1 个答案:

答案 0 :(得分:0)

这份旅客自述文件可能会有所帮助。 glamorous

我个人会检查以确保没有陈旧的nginx进程与ps aux|grep nginx一起浮动,如果9太严厉,则触发kill -9-15

然后尝试在开发模式下运行,tail -f log/development.log只是为了确保一切正常。另外,根据您的rails版本,{@ 1}}可能已被弃用。从此回答中rails_envrack_envhttps://github.com/phusion/passenger/wiki/Debugging-application-startup-problems。欢呼声。