¿Cómo permitir que los clientes configuren dominios personalizados para sus propias páginas en un sitio web de servicio?

Jun 03 2020

Quiero implementar la misma funcionalidad que Intercom proporciona a sus clientes; permiten la implementación de Dominios Personalizados para Artículos . No estoy muy seguro de cómo van con su método de implementación, o qué están haciendo exactamente detrás de escena.

Tome el siguiente escenario; un cliente (empresa NorthWind) tiene un subdominio en el sitio web de mi empresa (northwind.example.com).

Debe ocurrir lo siguiente:

  • Si un usuario escribe northwind.example.com, va a northwind.example.comy northwind.example.comaparece en la barra de URL.
  • Si un usuario escribe example.northwind.com, va a northwind.example.comy example.northwind.comaparece en la barra de URL.

La diferencia entre la forma en que Intercom lo implementa y la forma en que deseo implementarlo es que estoy usando un subdominio , no un directorio, como se ve en el artículo de ayuda de Intercom vinculado anteriormente.


Teniendo en cuenta que mi sitio web se ejecuta en Nginx, NodeJS y MongoDB, esto es lo que se me ocurrió hasta ahora:

  • El cliente registra un registro CName en su proveedor de dominio para apuntar a su página en mi sitio web.
  • El cliente proporciona el registro CName que utilizó en mi sitio web (regístrelo a través de un formulario).
  • Guardo un registro en MongoDB para la empresa y su dominio personalizado.
  • Registro, o vuelvo a registrar, los proxies inversos de mi sitio web, usando redbird para permitir que se realice la redirección.

Ya investigué Redirigir la página web a otro sitio sin cambiar la URL y ¿un Cname cambia la URL que muestra el navegador ?

¿Estoy en el camino correcto o hay un método mejor?

Respuestas

5 yaharga Jun 09 2020 at 14:14

Decidí preguntarle a Intercom, a través de su canal de soporte, por una respuesta, y me dieron la siguiente respuesta:

En realidad, esto no es algo con lo que hagamos nada especial, todo tiene que ver con la configuración del servidor web, tanto de nuestro lado como del lado del cliente.

Este stackoverflow entra en más detalles sobre esto, pero tenga en cuenta que si bien es un StackOverflow de Ruby, se enfoca en la configuración del servidor web, en este caso nginx, pero podría ser cualquier software de servidor web.

Cómo conservar la URL de la solicitud con nginx proxy_pass

Esto permite que su servicio reciba las solicitudes, pero también tenga acceso a la dirección del servidor original; luego, le pedimos a nuestros clientes que proporcionen el dominio personalizado que están usando dentro de su Configuración del artículo para ayudarnos a traducir la dirección del servidor al centro de ayuda correcto.

Espero que esto ayude, si tiene alguna pregunta de seguimiento, me complacerá intentar ayudarlo, pero como mencionó, esto no está dentro del alcance de nuestro equipo, por lo que la ayuda que puedo brindar puede ser limitada.

Bastante feliz con la respuesta, ya que hicieron todo lo posible por mí. Básicamente, el camino en el que estaba era el correcto. Decidí dejar la pregunta para ayudar a otros. También encontré las siguientes preguntas relacionadas:

  • ¿Cómo habilito dominios personalizados para mis usuarios?
  • Cómo dar soporte de reenvío de cname al software saas
  • Función de dominio personalizado para clientes de productos saas

Suerte a los que encuentren esto.