
En el trabajo tengo un SuSE 7.3 que ejecuta Apache 1.3.20, al que no tengo acceso de administrador. Me gustaría implementar Ruby on Rails sin omuy pocotrabajo para los administradores.
Necesito que el servicio siga funcionando todo el tiempo, incluso si se reinicia el servidor, necesito que se ejecute más rápido que CGI-Speed y me gustaría tener un dominio simple sin puertos.
¿Cuáles son mis opciones?
Respuesta1
Ejecute Rails en otro servidor (nginx+mod_rails es mi favorito, pero lighttpd, mongrel o algo similar debería funcionar) y simplemente pida a los administradores que inviertan el proxy desde Apache.
Respuesta2
Ejecutar Rails en Apache 1.3 será mucho más doloroso que en un sistema 2.x.
Necesitará ejecutar mestizos localmente (tal vez configurados por un administrador de ese servidor para que se inicie correctamente) en números de puerto específicos por aplicación, y luego usar algo de magia de proxy para enviar Apache allí, o en una máquina diferente. Si elige ejecutar en una máquina diferente, instale Apache 2.0 y use Phusion Passenger. Hará tu vida más fácil.
Ejemplo de configuración de pasajero para un nuevo sitio en Apapche:
<VirtualHost *:80>
ServerName blog.flame.org
DocumentRoot /www/blog/flame-blog/current/public
ExpiresDefault "access plus 10 years"
</VirtualHost>
Puse esto en un archivo llamado /local/httpd/sites/blog.flame.org.conf
y luego lo uso en mi httpd.conf
archivo:
Include /local/httpd/sites/*.conf
En mi humilde opinión, no hay nada más fácil para agregar un nuevo sitio que este, si desea mantener la administración de configuración basada en la línea de comandos.
En cuanto a implementar una nueva versión de una aplicación RoR, usar Capistrano es literalmente tan fácil como escribir cap desplegar: migraciones para lanzar una nueva versión, y si te equivocas, cap implementar: rollback para deshacerlo. Vaya.
Usaría Capistrano para implementar sus aplicaciones sin importar cómo elija servirlas.