请求处理程序错误尝试在升级的Ruby / Rails / Ubuntu框上运行Nginx / Phusion Passenger

时间:2015-01-14 17:14:20

标签: ruby-on-rails nginx passenger ubuntu-14.04

我是新来的,所以要温柔。

我最近设置了一个新的VPS来运行ruby-on-rails网站。我已经使用上述版本安装了以下应用程序。我收到Bad Gateway错误。我浏览了网络和stackoverflow,但未能隔离任何有关此错误的讨论。

有人可以对此提出一些看法。 感谢您的投入。 ALF

  • 服务器:Ubuntu 14.04
  • Ruby:2.2
  • Rails:4.2
  • nginx:1.6.0
  • 乘客:4.0.46

错误日志 - 将passenger_log_level设置为7.下面的主要部分,如果我能弄清楚如何,我还可以上传一个txt文件。

我能发现的主要错误代码就是这个。一旦发出请求,它就会进入无限循环:

2015-01-14 16:38:49.7008 2348/7fa01e892700 agents/HelperAgent/RequestHandler.h:2626 ]: [Client 20] End of (unbuffered) client body reached; done sending data to application
App 2367 stderr: [ 2015-01-14 16:38:49.7012 2442/0x007f052879f318(Main thread) request_handler.rb:181 ]: Entering request handler main loop
App 2367 stderr: /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/lib/phusion_passenger/request_handler.rb:356:in `trap'
App 2367 stderr: : 
App 2367 stderr: Invalid argument - SIGKILL
App 2367 stderr:  (
App 2367 stderr: Errno::EINVAL
App 2367 stderr: )
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/lib/phusion_passenger/request_handler.rb:356:in `block in reset_signal_handlers'
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/lib/phusion_passenger/request_handler.rb:354:in `each_key'
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/lib/phusion_passenger/request_handler.rb:354:in `reset_signal_handlers'
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/lib/phusion_passenger/request_handler.rb:182:in `main_loop'
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/helper-scripts/rack-preloader.rb:161:in `'
App 2367 stderr:    from /usr/local/lib/ruby/gems/2.2.0/gems/passenger-4.0.46/helper-scripts/rack-preloader.rb:29:in `'

当nginx / passenger启动时,我也注意到了下面的一次:

[ 2015-01-14 16:38:46.8338 2348/7fa0209bf700 Pool2/SmartSpawner.h:353 ]: [App 2367 stdin >>] 
App 2367 stderr: /usr/local/lib/ruby/gems/2.2.0/gems/activesupport-4.1.1/lib/active_support/values/time_zone.rb:285: warning: circular argument reference - now
[ 2015-01-14 16:38:48.0003 2348/7fa020aa3700 Pool2/Pool.h:836 ]: Analytics collection time...
[ 2015-01-14 16:38:48.0021 2348/7fa020aa3700 Pool2/Pool.h:942 ]: Analytics collection done; next analytics collection in 4.998 sec
App 2367 stderr: /usr/bin/env: 
App 2367 stderr: ruby
App 2367 stderr: : No such file or directory
App 2367 stderr: 
[ 2015-01-14 16:38:49.6243 2348/7fa0209bf700 Pool2/Spawner.h:790 ]: [App 2367 stdout] !> Ready
[ 2015-01-14 16:38:49.6245 2348/7fa0209bf700 Pool2/Spawner.h:790 ]: [App 2367 stdout] !> socket: unix:/tmp/passenger.1.0.2344/generation-0/backends/preloader.2367
[ 2015-01-14 16:38:49.6247 2348/7fa0209bf700 Pool2/Spawner.h:790 ]: [App 2367 stdout] !> 

nginx是通过/etc/init.d/nginx脚本启动的,主要是这样做的:

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;

1 个答案:

答案 0 :(得分:6)

我从来没有完全按照以上设置工作。最后,我将乘客升级到4.0.57,这很有效!