2009-05-11 8 views
13

Leí en algunos libros que Phusion Passenger es la respuesta a la sencilla implementación de Ruby on Rails. Pero mi amigo dijo que primero había Apache + montón de Mongrels, y luego lighttpd, y luego nginx, y ahora Passenger, y parece interminable ...¿mod_rails o Phusion Passenger finalmente son la respuesta a Ruby on Rails Deployment?

También dijo que usa Dreamhost que usa Passenger, y algunas veces él ve su solicitud no procesada.

Me pregunto si Passenger es la respuesta final al despliegue de RoR. ¿lo usas y usaste el comando "ab" para probar si el sitio está funcionando bastante bien?

+0

En Dreamhost, su amigo podría encontrarse con su techo de memoria por usuario, en lugar de un problema con el Pasajero. Ver: http://stackoverflow.com/questions/824783/rails-app-randomly-crashes-with-error-premature-end-of-script-headers –

Respuesta

20

respuesta corta: sí.

larga respuesta: yeeeeeeeeeeeeeeesssssssssssssssss.

Con toda seriedad, Phusion Passenger y Ruby Enterprise Edition han eliminado casi todo el dolor de mover una aplicación Rails a la producción. Los enfoques anteriores, incluida la ejecución de un conjunto de Mongrels, requirieron una gran cantidad de configuraciones para el inicio, la detención y el reciclaje de procesos de escucha que Passenger maneja de forma transparente, o mediante simples opciones de configuración de Apache (o nginx). Y el recolector de basura complementario de REE significa que la bifurcación de un nuevo oyente usa MUCHA memoria y es más rápido de arrancar (en el modo de desove "inteligente" del Pasajero).

Editar: @srboisvert hace un muy buen punto; Passenger no es la respuesta final al despliegue de RoR, pero por ahora es mi favorito por lejos. Un día, después de que se resuelvan muchos problemas de ingeniería, la corriente principal de Ruby probablemente pasará de hospedar RoR usando un modelo multiproceso a un modelo de proceso único, lo que haría que la administración sea aún más fácil que con Passenger.

+1

+1 para una respuesta larga: yeeeeeeeeeeeeeeesssssssssssssssss. Me he echado a reír y aún me estoy riendo. –

3

Sí, es la solución más fácil, rápida y eficiente. Después de que muchos problemas con gemas como soap4r, etc. se resolvieron en versiones recientes, Passenger es la respuesta a las preguntas de implementación ahora.

Estamos ejecutando Apache/mod_rails en un entorno equilibrado con HAProxy frente a 2 servidores. Es mucho más confiable que nuestra configuración anterior usando Mongrel/Aapache.

Es muy fácil de tomar el control de

  • la cantidad de procesos de pasajeros que se ejecuta en Apache
  • la cantidad de procesos de pasajeros corriendo por aplicación
  • y todo eso sin el dolor de ajustar una serie de archivos de configuración como mod_proxy, Apache.
  • la creación de una máquina virtual y la adición de 3 líneas a su configuración de Apache es básicamente lo suficiente para ponerlo en marcha

Matt

3

respuesta final? Nada es siempre la respuesta final.

Yo diría que Passenger es la respuesta actual.

+2

nada es la respuesta final a menos que estés jugando el juego "¿quién quiere ser millonario?". –

4

Es la mejor solución hasta el momento. Empecé a implementar con FCGI y fue un dolor. Luego vino mestizo y fue mejor. Luego vinieron mod_rails y fue MUCHO mejor.

También una gran cantidad de aplicaciones geniales están migrando a mod_rails, incluidas algunas por 37signals, para que sepa que eso es bueno.

Voy a terminar con una cita de DHH:

La solución de una sola pieza con Phusion pasajeros

Una vez que haya completado la instalación muy sencilla , se obtiene un Apache que actúa como servidor web, carga balanceador, servidor de aplicaciones y observador de procesos. Simplemente inserte en su aplicación y toque tmp/restart.txt cuando desee rebotarlo y bam, usted está activo y ejecutándose.

Pero de alguna manera el mensaje de pasajeros ha sido un poco lento a hundirse en. Ya hay un montón de grandes sitios corriendo fuera de él. Incluyendo Shopify, MTV, Geni, Yammer, y nos moveremos en primer Ta-da List en breve, luego con suerte el resto de los 37signals suite rápidamente a partir de entonces.

Así, mientras que todavía hay razones para ejecutar su propia configuración personalizada de varios niveles de piezas configuradas manualmente, simplemente como hay personas que huyen de mod_php por sus particularidades, creo que hemos finalmente se estableció en una respuesta predeterminada . Algo que no requiere para pensar realmente en el primer despliegue de su aplicación Rails. Algo que simplemente funciona en el cuadro . ¡Incluso si esa caja es un host compartido ! En conclusión, Rails ya no es difícil de implementar . Phusion Passenger ha hecho que sea ridículamente fácil.

(via)

1

supongo que ahora la gente se adhieren a mod_rails durante muchos años. El módulo es realmente bueno. La configuración es muy simple. Será difícil reemplazarlo con alguna solución mejor. Similar a mod_php. El único componente clave que falta: el puerto de Windows.

2

Sí. He estado ejecutando Nginx/Passenger frente a Apache para lo que todavía necesita PHP desde que lanzaron 2.2.0 hace unas semanas. Especialmente con Ruby Enterprise Edition, se acerca a lo que yo llamaría "perfecto".

1

En algunas situaciones (empresariales, etc.) el JVM también puede ser una buena opción.