
Tengo un servicio en línea que proporciona un perfil público para los usuarios. Los usuarios pueden registrarse y ver sus perfiles en www.example.com/users-name
.
Quiero brindar un servicio premium donde el usuario pueda acceder a este perfil a través de su propio nombre de dominio (con el sitio aún alojado por mí). Entonces, si se registraran users-custom-domain.com
, podrían visitar ese sitio y verían el mismo perfil que el anterior, además de algunas funciones premium.
¿Qué tipo de infraestructura se necesita para respaldar esto? ¿Presumiblemente el usuario tendría que apuntar su DNS a mis servidores? Si estoy alojando mi producto en un host en la nube como Heroku, ¿se puede lograr esto? ¿Cada usuario que utilice un dominio personalizado accedería a una aplicación web aislada? Por ejemplo, si se utiliza una infraestructura en la nube, ¿cada "instancia" debería generar una nueva aplicación o se puede compartir de alguna manera?
Sé que hay muchas maneras de lograr esto, solo estoy buscando ideas y mejores prácticas, ya que no estoy seguro de por dónde empezar (por ejemplo, ¿qué tal si.me o tumblr logran esto)?
Respuesta1
Necesitas:
- DNS para traducir el nombre de dominio del usuario a un nombre o dirección que usted controle. Puede alojar ese servicio y codificar los registros necesarios, o el usuario puede administrar su propio DNS y configurar los registros él mismo. Le recomiendo que tenga un nombre en su dominio al que los usuarios le pongan CNAME en sus registros; Como descubrió Github cuando tuvieron que cambiar la numeración, si permites que las personas codifiquen las direcciones IP, las cosas se complican.
- Su infraestructura de servicios web necesita saber cómo responder a las solicitudes del dominio del usuario y qué contenido ofrecerle. Por lo general, esto implica que el usuario haga algo en su perfil para decir: "Te señalaré tal o cual dominio" y luego tienes una plomería automatizada detrás de escena que configura el nivel del servidor web para hacer lo correcto.
Todo lo que hay en tu aplicación se puede compartir; No hay absolutamente ninguna razón para crear algo separado para atender a cada usuario. La implementación por proveedor es algo que deberá descubrir usted mismo; Hay demasiadas posibilidades y combinaciones para brindarte una revisión completa.