Usar una subcarpeta (prefijo de ruta) para servir Discourse con múltiples servidores compartiendo un dominio

Digamos que tienes un blog de WordPress en http://=DOMAIN= y quieres servir tus foros de Discourse (que se ejecutan en un servidor diferente) desde http://=DOMAIN==PATH=. ¿Cómo lo haces?


Nota: Esto no funcionará para servir múltiples instancias de Discourse desde diferentes carpetas en el mismo dominio. Necesitas usar diferentes subdominios para que cada sitio pueda tener cookies diferentes.


Vas a necesitar enviar todo el tráfico del dominio a un lugar que pueda enrutar el tráfico al servidor correcto. En este tutorial, usaré Fastly. Así, Discourse se servirá desde un servidor, y las otras partes de tu sitio (como WordPress) se ejecutarán en uno o más servidores diferentes.

Cambios en el contenedor Docker

Primero, sigue las instrucciones aquí para servir Discourse desde una subcarpeta.

Fastly

Ahora configura Fastly para enviar el tráfico al lugar correcto según la ruta. Asumiré que Discourse se sirve desde =PATH=.

Crea un nuevo servicio apuntando a tu sitio web principal y sigue las instrucciones para actualizar tu configuración de DNS.

Ve al servicio y haz clic en “Configure” (Configurar). Asegúrate de haber seleccionado la Versión 2 para poder realizar cambios. La Versión 1 es la versión actualmente activa y no se puede modificar.

En la sección “Hosts” (Hosts), añade tu servidor de Discourse como un segundo backend.

En la pestaña “Settings” (Configuración), añade una nueva entrada bajo “Request Settings” (Configuración de Solicitud) llamada “Discourse Pass” con la acción “Pass”.

Finalmente, para cada host, edita las condiciones para especificar dónde enrutar el tráfico.

Para tu sitio web principal, las URL que no son de Discourse deben coincidir.

req.url !~ "^=PATH="

Para el host de Discourse, las URL de =PATH= deben coincidir.

req.url ~ "^=PATH="

15 Me gusta