¿Qué se requiere para implementar una aplicación Sinatra (Ruby) en un servidor en vivo?

Primero necesitas un servidor web. Suele ser Apache o nginx (pronunciado “engine-x”). El servidor web escucha en el puerto 80 (y / o el puerto 443 para https) luego enruta la solicitud al servidor de aplicaciones.

Hay varios servidores de aplicaciones diseñados para ejecutar aplicaciones Ruby. Los más populares son Passenger, Unicorn y Puma. Passenger es el más fácil de instalar y usar. Puma fue el más rápido. Ahora con la última versión de Passenger (5.0), ahora es la más fácil y la más rápida. Yo recomendaría usar Passenger.

Heroku maneja ambas cosas por ti.

Todos los servidores de aplicaciones que mencioné implementan el estándar Rack. El servidor de aplicaciones carga el config.ru (archivo “acumulado”) que especifica una clase que responde a un método de “llamada”, recibe un hash de opciones de solicitud y responde con una matriz de código de estado, encabezados http y la respuesta cuerpo. Sinatra maneja esta parte por usted, por lo que es tan simple como definir las rutas a las que desea responder.

El servidor de aplicaciones mantendrá la aplicación ejecutándose en la memoria hasta que detenga el servidor o lo reinicie. Entonces, durante el proceso de implementación, el código se actualiza y se le dice al servidor de aplicaciones que reinicie.

Con Heroku, necesitas instruir lo que quieres que haga.

Config.ru está configurando Rack, una interfaz de servidor web para aplicaciones Ruby, incluida Sinatra. Esto es lo que necesita para ejecutar su aplicación en desarrollo o producción. Heroku configura automáticamente el interruptor de desarrollo / producción.

Cómo saber si tu código es desarrollo / producción

  Sinatra :: Base.development?  # => verdadero (si localhost)
 Sinatra :: Base.production?  # => falso (a menos que sea producción)

Fuente: Implementación de aplicaciones basadas en bastidor en Heroku.

More Interesting

¿Qué tan importante es un dominio .com para una aplicación web exitosa dado que todos los buenos nombres se han ido?

Si desarrollamos una aplicación web utilizando una plantilla de administración de código abierto (GPL v3), ¿es obligatorio hacer que la aplicación sea de código abierto?

Cómo enviar datos push usando Firebase entre dos clientes

Cuando registra una cuenta en un servicio de aplicación web, ¿las personas prefieren .domain.com o www.domain.com/ como su página de usuario? ¿Por qué?

¿Qué marco web usarías para crear un sitio web de clones de Udemy y por qué?

¿Cuáles son los flujos de trabajo óptimos para implementar la aplicación web?

¿Cuáles son los mejores ejemplos de aplicaciones y software que ofrecen un plan de actualización de la organización?

¿Qué aplicaciones web muestran tutoriales interactivos antes de usar?

Cómo almacenar y recuperar eficientemente los datos del diccionario de definiciones para una página de texto

¿Las aplicaciones web realmente pueden reemplazar las aplicaciones nativas fuera de línea / Windows para el software ERP?

¿Cuál es el futuro del desarrollador web Java?

¿Por qué las personas usan IFTTT? Hice una cuenta pero no estoy seguro de por qué debería quedarme.

¿Cuál es la diferencia entre diseño web y desarrollo web? ¿Se puede aprender uno sin el otro?

¿Existe una aplicación de Twitter que le permita exportar los datos de sus seguidores a Excel, incluso si tiene más de 100,000 seguidores?

Como una persona que se dedica a la programación, ¿cuáles son los posibles campos en los que puedo obtener experiencia además del desarrollo web y de aplicaciones?