Proxy reverso a Unicorn desde Apache

En una de migraciones que tuve realizar tenía el siguiente escenario: Un proyecto funcionando en Rails con Unicorn corriendo en el puerto 8080, y el tráfico http (80) estaba redireccionado a ese puerto mediante Iptables.

Lo que se debía hacer era montar  en ese mismo servidor un sitio web que funciona con PHP, Apache y MySQL.  La solución es usar Apache como frontal (podría haber sido Nginx) y en modo proxy el servicio en Rails corriendo con Unicorn.

 

Las configuraciones para los dos servicio (sitio web y proyecto en Rails) de Apache2 serían

Sitio web

 
<VirtualHost *>
DocumentRoot /var/www/web
 ServerAlias dominioweb.com
 <Directory "/var/www/web">
 AllowOverride All
 Allow from All
 DirectoryIndex index.php
 Require all granted
 </Directory>
 CustomLog /var/log/apache2/dominioweb_access.log combined
 ErrorLog /var/log/apache2/dominioweb_error.log
</VirtualHost>
 

Proyecto en Rails

<VirtualHost *>
 ServerName proyectorails.com
 RewriteEngine On
 ProxyRequests Off
 ProxyPreserveHost On
 ProxyPass / http://127.0.0.1:8080/
 <Location />
 ProxyPassReverse /
 Order deny,allow
 Allow from all
 </Location>
# Custom log file locations
 ErrorLog /var/log/apache2/proyectorails_error.log
 CustomLog /var/log/apache2/proyectorails.log combined
</VirtualHost>

Para esto, se debe tener activado los modulos proxy,  en el caso de Debian y derivados se activa con

a2enmod proxy

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *