2010-06-30 10 views
13

que originalmente registró una cuestión relacionada con este problema en serverfault.com: https://serverfault.com/questions/152587/apache-mod-proxy-to-another-serverextraño problema con la aplicación Rails y mestizo

Desde entonces he dado cuenta de que esto no es un problema con la configuración de mi servidor, pero mi solicitud rieles. He configurado esta aplicación en el servidor exactamente igual que otra aplicación de rieles en funcionamiento que tengo corriendo en el mismo servidor. Cuando inicio el servidor de mi mongrel.log se ve así:

** 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 

cuando me carga una página de este aparece en el registro:

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 

No puedo entender por qué es diferente acerca de esta aplicación que puede causar este problema

+0

encontró este ticket antiguo http://dev.rubyonrails.org/ticket/6716 error similar. ¿Tiene alguna declaración de inclusión fuera de sus clases? ¿También verificaste los nombres de tus clases, para asegurarte de que no estás inadvertidamente arreglando el mono de una clase? –

+0

Tengo un modelo y un controlador de "Recursos", ¿podría estar causando eso? No creo que esté usando ninguna declaración de inclusión. – trobrock

+0

Comenté todo el código relevante para el modelo "Recurso" y no tuvo ningún efecto, tampoco veo ningún elemento incluido en mi código. – trobrock

Respuesta

0

¿Todavía ve el problema en las siguientes solicitudes GET? Tuve un problema similar cuando mi aplicación Rails funcionaba bien en WEBrick pero no en Mongrel, pero encontré en algún lugar de los internets (here's a link que muestra una versión similar del problema) que las versiones anteriores de Mongrel manejan mal la primera solicitud a la página, pero manejan solicitudes bien.

La solución alternativa que pusimos fue que cada vez que iniciamos la aplicación, teníamos curl realizaba un GET en la aplicación para "cebar" Mongrel.

+0

Está en cada solicitud – trobrock

0

Esto es generalmente error al leer un archivo yaml para config. Ha configurado un objeto de configuración para obtener valores y la entrada en el archivo yaml para su entorno no está allí, por lo que el objeto es nulo.

¿Está ejecutando alguna gema que tenga un archivo yaml que quizás no esté configurado para el desarrollo?

No sé por qué volver al 2.3.5 ayudaría, podría ser que carga cosas en un orden diferente y la información de configuración está disponible.

3

Creo que esta es una extraña combinación de errores en Rack, Mongrel y Rails.

  1. Guardar este código de rubí en su aplicación a config/mongrel.rb: http://gist.github.com/471663

  2. En su config/environment.rb, al final del archivo de complemento: require File.join(File.dirname(File.expand_path(FILE)), 'mongrel')

  3. En ese mismo archivo añadir esta línea en el bloque Rails :: initializer.run: config.gem "mongrel"

Explicación más larga del problema aquí: https://rails.lighthouseapp.com/projects/8994/tickets/4690-mongrel-doesnt-work-with-rails-238

Esto definitivamente ha funcionado para una aplicación Rails 2.3.8, aunque la parqué ligeramente diferente a la descrita anteriormente.

+0

Experimenté el mismo problema en una aplicación que usa Rails 2.3.11 en algún momento alrededor de junio de 2011 y apliqué con éxito una solución similar. De acuerdo con mi código, obtuve el parche de https://gist.github.com/826692. –

+0

@rkb ¡Muchas gracias! Experimentamos exactamente el mismo problema en junio de 2016 en Rails 2.3.18. Esta solución alternativa sigue siendo válida, excepto que tenemos que cambiar '2.3.8' con' 2.3.18' en 'config/mongrel.rb' y agregar' require File.join (File.dirname (File.expand_path (__ FILE__)) , 'mongrel') 'al' config/environment.rb'. Tenga en cuenta que se requieren dos guiones bajos alrededor de 'FILE'. – Tsutomu

Cuestiones relacionadas