我最初在serverfault.com上发布了一个与此问题相关的问题:https://serverfault.com/questions/152587/apache-mod-proxy-to-another-server
后来我意识到这不是我的服务器设置的问题,而是我的rails应用程序的问题。我已经在服务器端设置了这个应用程序,与我在同一服务器上运行的另一个功能正常的rails应用程序完全相同。当我启动服务器时,我的mongrel.log如下所示:
** Daemonized, any open files are closed. Look at /var/www/osuwebdev/tmp/pids/mongrel.pid and log/mongrel.log for info.
** Starting Mongrel listening at 0.0.0.0:8080
** Starting Rails with production environment...
** Rails loaded.
** Loading any Rails specific GemPlugins
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
** Mongrel 1.1.5 available at 0.0.0.0:8080
** Writing PID file to /var/www/osuwebdev/tmp/pids/mongrel.pid当我加载一个页面时,它会在日志中弹出:
Wed Jun 30 19:46:10 +0000 2010: Error calling Dispatcher.dispatch #<NoMethodError: undefined method `[]' for nil:NilClass>
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:108:in `send_cookies'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:136:in `out'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/http_response.rb:65:in `start'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/cgi.rb:135:in `out'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:81:in `process'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:159:in `process_client'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `each'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:158:in `process_client'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `initialize'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `new'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:285:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `initialize'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `new'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel.rb:268:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:282:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `each'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:281:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run'
/var/lib/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
/usr/local/bin/mongrel_rails:19:in `load'
/usr/local/bin/mongrel_rails:19我找不出这个应用程序有什么不同,可能会导致这个问题。
发布于 2011-12-17 17:09:16
我相信这是Rack、Mongrel和Rails中的bug的奇怪组合。
将应用程序中的红宝石代码保存到http://gist.github.com/471663
require File.join(File.dirname(File.expand_path(FILE)), 'mongrel')
config/mongrel.rb:http://gist.github.com/471663
config/environment.rb,在文件的末尾添加:require File.join(File.dirname(File.expand_path(FILE)), 'mongrel')
config/environment.rb块中添加以下行:require File.join(File.dirname(File.expand_path(FILE)), 'mongrel')
更长的问题解释在这里:https://rails.lighthouseapp.com/projects/8994/tickets/4690-mongrel-doesnt-work-with-rails-238
这绝对适用于Rails 2.3.8应用程序,尽管我对其进行了修补,但与上面描述的略有不同。
发布于 2010-07-01 07:45:04
您是否仍然在后续的GET请求中看到该问题?我遇到了一个类似的问题,我的Rails应用程序在WEBrick下运行得很好,但在Mongrel下运行不好,但在互联网上(here's a link显示了类似版本的问题),我发现Mongrel的旧版本错误地处理了对页面的第一个请求,但可以处理后续的请求。
我们的解决办法是,每当我们启动应用程序时,我们都会让curl在应用程序上执行一个GET,以'prime‘Mongrel。
发布于 2011-05-25 18:19:47
这通常是读取配置的yaml文件失败。它设置了一个用于获取值的配置对象,而yaml文件中没有您的环境的条目,因此该对象为nil。
您运行的gem中是否有一个yaml文件可能不是为开发而设置的?
我不知道为什么回到2.3.5会有帮助-可能是它以不同的顺序加载东西,并且配置信息是可用的。
https://stackoverflow.com/questions/3152909
复制相似问题