Configurando apache + passenger con diferentes versiones de ruby

Standard

Hola, este artículo será breve pero me parece importante hacerlo ya que en mi trabajo me he topado con el siguiente ambiente.

Tenemos un servidor apache en la nube que trae instalado por default ruby 1.9, lo cual funciona muy bien para unas aplicaciones que teníamos instaladas y configuradas, sin embargo, al hacer un desarrollo con la versión 2.x de ruby, tuvimos un poco de dificultades para adecuar nuestro ambiente de producción, ya que era un apache2+passenger+ruby y por alguna razón no pudimos hacer que la versión más nueva de passenger nos funcionara de buena manera ya que ahora incluye una opción para manejar multiples versiones de ruby.

El caso es que al final utilizamos una solución planteada en la siguiente liga:

http://old.blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/

En resumén lo importante es lo siguiente:

rvm use 2.0
gem install passenger --pre
cd /webapps/tuapp
passenger start -a 127.0.0.1 -p 3001 -d -e production

Con lo anterior iniciaremos nuestra app y podremos enlazarla con apache con la siguiente configuración para apache:

...
<VirtualHost *:80>
    ServerName www.hamburgers.com
    DocumentRoot /webapps/tuapp/public
    PassengerEnabled off
    ProxyPass / http://127.0.0.1:3001
    ProxyPassReverse / http://127.0.0.1:3001
</VirtualHost>
...

Reiniciamos apache y con eso será suficiente.

Espero y les sea de utilidad.

Saludos.

NOTA: Sólo utilizar esta solución si la estándar no funciona.

Leave a Reply

Your email address will not be published. Required fields are marked *