¿Cómo configurar comodines IIS para subdominios de cuenta (como Basecamp)?

8

De hecho, estoy trabajando en una aplicación SaaS donde quiero darles a los suscriptores su propio subdominio para acceder a su información (en código extraeré la primera parte del subdominio para usarla como su nombre de cuenta), similar a cómo Basecamp y todo trabajo. Por ejemplo, un suscriptor puede tener la URL acme.myapp.com. Como podría haber cientos de suscriptores, no puedo simplemente agregar un encabezado de host diferente para cada cliente.

Apache le permite especificar un comodín (*) y redirigirá acme.myapp.com a myapp.com, donde puedo realizar mi lógica para recuperar el nombre de cuenta del usuario en función del subdominio. No estoy seguro de cómo hacer esto automáticamente con IIS (ha pasado un tiempo desde que tuve que configurar IIS para cualquier cosa, excepto un solo sitio web).

Además, ¿hay alguna disposición especial que necesito para lograr esto? Cuando mi aplicación esté lista y esté buscando alojamiento, ¿necesitaré algo específico del host que limite mis opciones? También estaba considerando usar Windows Azure para aprovechar la nube, ¿podría seguir haciendo esto si fuera con Azure como plataforma de alojamiento?

Wayne Molina
fuente
¿Qué versión de IIS es esta, 6 o 7?
Sam Cogan
IIS7 (cuadro local que ejecuta Win7). El alojamiento probablemente estará en Server 2008, así que puedo asumir IIS7 siempre.
Wayne Molina el

Respuestas:

5

Como Joe mencionó, haría esto más con DNS que con IIS.

IIS no tiene soporte para dominios comodín * .domain.com. En su lugar, crearía un sitio en IIS que no tuviera encabezados de host, por lo que respondería a todas las solicitudes en esa IP que no fueron recogidas por otros sitios que sí tenían encabezados de host. Luego crearía su entrada DNS comodín para apuntar a la IP de ese sitio y listo.

Sam Cogan
fuente
Entonces, ¿no hay forma de "falsificarlo" sin tener la configuración del dominio y hacerlo con DNS? Lo pregunto porque me gustaría probar la parte de la cuenta (por ejemplo, que acme.myapp.xxx recupera la cuenta de Acme), pero si entiendo bien, significa que no puedo probar esto con IIS a menos que compre el dominio y establezca arriba la dirección IP?
Wayne Molina el
2
Bueno, si solo quieres probarlo, puedes configurar IIS, luego poner algunas entradas en tu archivo HOST local para los subdominios que deseas probar, por lo que apuntan a tu servidor IIS, esto te permitirá probarlos en tu máquina sin comprar el dominio
Sam Cogan el
Siempre que solo tenga una aplicación por puerto en su IIS.
Marc Climent
2

Si te entiendo correctamente, puedes usar DNS para hacer esto. Suponiendo que myapp.com es su dominio, entonces en su zona DNS de myapp.com simplemente agregue un registro CNAME (acme) que apunte al registro A de su sitio web (www.myapp.com). Eso los enviará a su sitio web principal, donde su código se hará cargo y los redirigirá a la aplicación adecuada.

También puede usar un registro de comodín DNS (*) que capturará todo, como acme.myapp.com, joeschmoe.myapp.com, etc.

joeqwerty
fuente