Saltar al contenido principal

💎 Despliegue de Aplicación Ruby con Apache en SaveinCloud

⚠️ Todas las configuraciones mostradas en este manual son ejemplos simples e hipotéticos. Puede ser necesario realizar adaptaciones según la topología de su entorno.

Esta guía muestra cómo realizar el despliegue de una aplicación Ruby utilizando Apache + Passenger dentro de la plataforma SaveinCloud.


✅ Requisitos recomendados

Antes de iniciar el despliegue, asegúrese de que el proyecto contenga:

  • Código fuente Ruby listo para ejecución (ejemplo: aplicación Sinatra o Rails);

  • Un archivo config.ru válido para Rack;

  • Un Gemfile con las dependencias listadas (ejemplo: sinatra, rack, passenger);

  • Estructura de directorios bien organizada;

  • Archivo .htaccess con la configuración del Passenger.


Parte 1 - Configurando la Topología con Apache Ruby

🔧 Paso 1 – Montaje de la Topología

Agregue a la capa de aplicación el servicio Apache.

Ejemplo de una topología de Apache Ruby:

imagem

Load Balancer (opcional) → Apache → Aplicação Ruby

💡 Si desea utilizar HTTPS, configure directamente en Apache el addon de Let's Encrypt o utilice un Load Balancer con SSL.

Ajuste los cloudlets reservados según la necesidad de la aplicación.


Parte 2 - Realizando despliegue de la aplicación

📁 Despliegue vía Upload ZIP

  1. Acceda a la pestaña de Implementar Archivo en Apache.

imagem

  1. Realice el upload del archivo .zip que contiene su aplicación Ruby.

imagem

✅ El contenido será extraído automáticamente al contexto seleccionado en el momento del despliegue, Ej: /var/www/webroot/ROOT


Parte 3 - Configuración de Entorno Ruby (Passenger)

📑 Personalización de .htaccess

Para que Passenger reconozca su aplicación Ruby, cree un archivo .htaccess dentro de la raíz de la aplicación.

ℹ️ Ajuste las rutas según sea necesario.


📑 Instalación de Gems

Después del upload del proyecto, acceda al entorno vía SSH e instale las dependencias Ruby:

✅ Asegúrese de que el Gemfile contenga todas las dependencias obligatorias.


🛠️ Solución de Problemas

❌ Passenger - Could not spawn process for application

Causa: Falta de gems o error de sintaxis en el código.

Solución:

Verifique el log de errores de Apache:


/var/log/httpd/error_log


❌ Error de sintaxis en config.ru

Causa: Configuración incorrecta en el archivo config.ru.

Solución:

Verifique que el archivo contenga un require correcto y una instancia de aplicación Rack válida.


❌ Incomplete response received from application

Causa: La aplicación Ruby no devolvió una respuesta HTTP válida.

Solución:

Revise el código Ruby, principalmente el app.rb y el config.ru. Pruebe localmente con rackup antes de hacer el despliegue.


❌ Error 500 - Internal Server Error

Causa: Problemas de permisos, gems faltantes o fallo de inicialización de Passenger.

Solución:

Revise los logs de Apache y Passenger:


/var/log/httpd/error_log


📄 Enlaces Útiles