2010-03-11 36 views
6

Tengo un problema grave con uno de nuestros servidores web ... después de realizar una prueba alfa interna con un mestrel/haproxy-cluster que funcionó bien, queríamos usar nginx con pasajero para nuestro primer servidor de producción (clientes accederá a este servidor).¿Por qué Rails con Passenger/nginx solo funciona en modo de desarrollo? No hay registros disponibles

Sin embargo, solo puedo ejecutar la aplicación de rieles mediante el modo de desarrollo con pasajero/nginx.

La aplicación en sí funciona perfectamente con mongrel o webrick en modo de producción.

Mi mayor problema con este caso es que no encuentro NINGUNA información en el nginx o rieles-logs (solo cuando uso mongrel o webrick).

Los permisos son correctos. El estado del pasajero muestra que la aplicación se está ejecutando, pero siempre obtengo la página estática 500.html-error ...

Sería muy agradable si ustedes pudieran darme una pista y ayudarme a resolver el problema.

puse la config en la parte inferior del poste ... Esta configuración exacta trabaja con rails_env development; pero me gustaría utilizar el modo de producción ;-)

Muchas gracias por su ayuda!


Version: Ubuntu 8.04.2 64bit/ nginx-0.7.64 (compilado e instalado a través de pasajero-2.2.11)

gato /opt/nginx/conf/nginx.conf

user www-data; 
worker_processes 4; 

error_log logs/error.log; 

#pid  logs/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
     passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11; 
     passenger_ruby /usr/bin/ruby1.8; 


    passenger_log_level 3; 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log logs/access.log; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 

    server { 
     listen  80; 
     server_name <<servername>>; 


root /srv/app01/public; 
passenger_enabled on; 
} 
+0

oh, lo olvidé, rails es la versión 2.3.5 –

+0

No sé pasajero, pero sé nginx ... ¿no debería tener sección 'ubicación' debajo de' servidor'? –

+0

Y te falta un '}' de cierre en el servidor o http –

Respuesta

3

Pasajero con Nginx se ejecuta en modo de producción por defecto. Use el comando passenger-install-nginx-module para instalar nginx compilado con el módulo Pasajero. ¿Estás seguro de que has creado y migrado la base de datos para el modo de producción?

rake db:create RAILS_ENV=production 
rake db:migrate RAILS_ENV=production 

Su nginx.conf se ve bien a mí. Asegúrese de que el usuario de nginx (por ejemplo, www-data) tenga acceso a su aplicación de rieles.

Buena suerte

+0

Hola, gracias por su respuesta ... La base de datos está configurada correctamente y los permisos de archivos deberían ser correctos, porque nginx + pasajero trabaja en modo de desarrollo ... ¿Tiene alguna pista donde pueda encontrar mensajes de depuración/registro? –

0

Puedo ejecutar Rails 2.3.5 de pasajeros detrás de nginx, y he tenido el mismo problema. Mi solución es siempre cambiar al modo de desarrollo en Passenger/nginx o modo de producción en WEBrick para depurar, pero parece que has probado ambos.

¿Intentó descomentar la línea error_log logs/error.log; en su nginx.conf?

+0

Hola, gracias por tu respuesta ... Qué vergüenza, el modo de desarrollo es demasiado lento para nosotros, queremos el almacenamiento en caché y todo lo demás ... Descomentó la línea como se puede ver en la publicación anterior. Quizás tengamos que verificar cuál es exactamente el problema (almacenamiento en caché o lo que sea) al deshabilitar algunas características y volver a intentar ... –

+0

No recomendaría ejecutar en desarrollo permanentemente, solo temporalmente para encontrar la causa del error. De todos modos, por lo que puedo decir, este es un error de pasajero. Frustrante. – Tom

2

acaba de quitar config.ru de su directorio de aplicación

de pasajeros pasará de cremallera a los rieles y todo funcionará

+0

que funcionó para mí. ¡muchas gracias! – cbrulak

Cuestiones relacionadas