Ruby on Rails es un potente framework para el desarrollo de aplicaciones web que favorece la convención sobre la configuración, lo que permite a los desarrolladores crear aplicaciones de manera eficiente y efectiva. Cuando se trata de desplegar estas aplicaciones en un entorno de producción, combinar Nginx con Passenger como servidor de aplicaciones resulta en una solución robusta, escalable y fácil de configurar. Este artículo proporcionará una guía detallada sobre cómo ejecutar una aplicación Ruby on Rails en Nginx usando Passenger, ideal para aquellos nuevos en este tema, pero buscando implementar soluciones técnicamente sólidas.
Instalación de Passenger
Passenger es un servidor de aplicaciones web y un proxy inverso que facilita la ejecución de aplicaciones Ruby on Rails en servidores web como Nginx. Para instalar Passenger, ejecuta el siguiente comando:
gem install passenger
Luego, instala el módulo de Passenger para Nginx ejecutando:
passenger-install-nginx-module
Durante la instalación, se te guiará a través de una serie de pasos para configurar Nginx con Passenger. Es posible que se te pida instalar dependencias adicionales. Sigue las instrucciones en pantalla para completar la instalación.
Configuración de Nginx y Passenger
Una vez instalado Passenger, debes configurar Nginx para que sirva tu aplicación Ruby on Rails. Abre el archivo de configuración de Nginx (nginx.conf
), que generalmente se encuentra en /etc/nginx/nginx.conf
o /opt/nginx/conf/nginx.conf
, y agrega lo siguiente dentro del bloque http
:
http {
...
passenger_root /path-to-passenger-installation;
passenger_ruby /path-to-ruby;
...
}
Reemplaza /path-to-passenger-installation
con la ruta donde está instalado Passenger, que puedes encontrar ejecutando passenger-config --root
. Reemplaza /path-to-ruby
con la ruta al intérprete de Ruby, que puedes encontrar ejecutando which ruby
.
A continuación, configura un servidor virtual para tu aplicación añadiendo un nuevo bloque de servidor en nginx.conf
o en el directorio sites-available
si estás utilizando una estructura basada en este directorio y en sites-enabled
:
server {
listen 80;
server_name miaplicacion.com;
root /var/www/miaplicacion/public;
passenger_enabled on;
passenger_app_env production;
location / {
try_files $uri @app;
}
location @app {
include proxy_params;
proxy_pass http://unix:/var/www/miaplicacion/tmp/sockets/miaplicacion-puma.sock;
}
}
Asegúrate de reemplazar miaplicacion.com
con el nombre de dominio de tu aplicación y /var/www/miaplicacion
con la ruta al directorio de tu aplicación Ruby on Rails.
Despliegue de la aplicación
Para desplegar tu aplicación, primero asegúrate de que todas las gemas estén instaladas ejecutando bundle install
dentro del directorio de tu proyecto. Luego, ejecuta las migraciones de la base de datos y precompila los activos si es necesario:
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake assets:precompile
Reiniciar Nginx
Después de configurar todo, reinicia Nginx para aplicar los cambios:
sudo service nginx restart
O si estás usando systemd:
sudo systemctl restart nginx
Servicios de Shape.host
Para aquellos interesados en desplegar aplicaciones Ruby on Rails en un entorno optimizado y seguro, Shape.host ofrece servicios de VPS SSD Linux, que pueden ser una excelente solución. Estos VPS están diseñados para ofrecer alto rendimiento y escalabilidad, asegurando que tu aplicación corra sin problemas y de manera eficiente. Además, el equipo de soporte técnico de Shape.host está disponible para ayudarte en la configuración y mantenimiento de tu servidor, permitiéndote concentrarte en el desarrollo de tu aplicación mientras ellos se ocupan de la infraestructura.