He buscado en la web, pero solo puedo encontrar información sobre cómo compartir código entre varios sitios y sobre cómo separar la base de datos de modelos aislados. Esto no es lo que quiero.Varios sitios en varios proyectos en el mismo servidor de rieles
Quiero ejecutar un solo servidor carriles, con una única dirección DNS y un solo puerto - http://myportal.com
- que se encargará de varios otros sitios - http://myportal.com/site1
, http://myportal.com/site2
etc.
quiero que cada sitio tiene su propia carpeta (y el repositorio de SCM), es su propia base de datos, su propio enrutamiento: es el propio todo. Es decir, quiero poder desarrollar cada sitio como independiente, eso significa que necesito poder ejecutar el sitio site1 como http://localhost:3000
y no http://localhost:3000/site1
.
En el servidor, el sitio raíz (el que responde a la dirección http://myportal.com
debe ser el que ejecuto el servidor, y debe conocer las rutas absolutas de los otros sitios (que estarán en diferentes directorios en el servidor, no en los directorios secundarios del sitio raíz) y proporcionar información de enrutamiento para ellos, pero también debe encadenarse a los otros archivos de los sitios routes.rb
. Eso significa que si voy a la dirección http://myportal.com/site1/books/
, el sitio raíz debe manejar http://myportal.com/site1
, y el sitio1 debe manejar /books/
. El sitio raíz no debería necesitar información sobre las estructuras de enrutamiento interno de los otros sitios.
¿Es esto posible? En este momento estoy ejecutando el servidor de carriles que viene con el g em (rails server
desde la línea de comandos) en un servidor de Windows Server 2008, pero estoy dispuesto a instalar otro servidor si eso es lo que se necesita para lograr el objetivo que describí.
¡Gracias de antemano!
lo tanto, si he entendido bien, necesito utilizar varios puertos, y que haga el trabajo de enrutamiento en el DNS? ¿No hay forma de hacer esto con un solo puerto? –
DNS dirige clientes a su servidor. Su servidor necesita enrutar internamente las solicitudes al puerto apropiado. Esta es quizás la forma más fácil de dividir varios sitios porque la directiva 'VirtualHost' captura todo con un nombre de host específico por defecto, pero solo en un puerto específico. El uso de múltiples combinaciones de puertos host + le brinda la flexibilidad que desea. – tadman
Bien, lo intentaré. ¿Tienes algún tutorial decente sobre 'VirtualHost' en los rieles? –