Comment configurer les caractères génériques IIS pour les sous-domaines de compte (comme Basecamp)?

8

En fait, je travaille sur une application SaaS où je veux donner aux abonnés leur propre sous-domaine pour accéder à leurs informations (dans le code, je tirerai la première partie du sous-domaine pour l'utiliser comme nom de compte), similaire à la façon dont Basecamp et tout travail. Par exemple, un abonné peut avoir l'URL acme.myapp.com. Puisqu'il pourrait y avoir des centaines d'abonnés, je ne peux pas simplement ajouter un en-tête d'hôte différent pour chaque client.

Apache vous permet de spécifier un caractère générique (*) et redirigera acme.myapp.com vers myapp.com, dans lequel je peux exécuter ma logique pour récupérer le nom de compte de l'utilisateur en fonction du sous-domaine. Je ne sais pas comment le faire automatiquement avec IIS (Cela fait un moment que je n'ai pas dû configurer IIS pour tout sauf un seul site Web).

De plus, y a-t-il des dispositions spéciales dont j'ai besoin pour accomplir cela? Lorsque mon application est prête et que je cherche à l'héberger, aurai-je besoin de quelque chose de spécifique de l'hôte qui limiterait mes choix? J'envisageais également d'utiliser Windows Azure pour tirer parti du cloud - serais-je toujours en mesure de le faire si j'utilisais Azure comme plate-forme d'hébergement?

Wayne Molina
la source
Quelle version d'IIS est-ce, 6 ou 7?
Sam Cogan
IIS7 (boîtier local exécutant Win7). L'hébergement sera probablement sur Server 2008, donc je peux toujours supposer IIS7.
Wayne Molina

Réponses:

5

Comme Joe l'a mentionné, vous feriez plus avec DNS qu'avec IIS.

IIS ne prend pas en charge les domaines génériques * .domain.com. Au lieu de cela, vous créeriez un site dans IIS qui n'avait pas d'en-têtes d'hôte, donc vous répondriez à toutes les demandes sur cette IP qui n'ont pas été récupérées par d'autres sites qui avaient des en-têtes d'hôte. Vous devez ensuite créer votre entrée DNS générique pour pointer vers l'IP de ce site et c'est fait.

Sam Cogan
la source
Il n'y a donc aucun moyen de le "truquer" sans avoir la configuration du domaine et le faire avec DNS? Je demande parce que je voudrais tester la partie du compte (par exemple, que acme.myapp.xxx récupère le compte pour Acme), mais si je comprends bien, cela signifie que je ne peux pas tester cela avec IIS à moins que j'achète le domaine et que je définisse l'adresse IP?
Wayne Molina
2
Eh bien, si vous voulez simplement le tester, vous pouvez configurer IIS, puis mettre quelques entrées dans votre fichier HOST local pour les sous-domaines que vous souhaitez tester, afin qu'ils pointent vers votre serveur IIS, cela vous permettra de les tester sur votre machine sans l'achat du domaine.
Sam Cogan
Tant que vous n'avez qu'une application par port dans votre IIS.
Marc Climent
2

Si je vous comprends bien, vous pouvez utiliser DNS pour ce faire. En supposant que myapp.com est votre domaine, puis dans votre zone DNS myapp.com, ajoutez simplement un enregistrement CNAME (acme) qui pointe vers l'enregistrement A de votre site Web (www.myapp.com). Cela les enverra sur votre site Web principal, où votre code prendra le relais et les redirigera vers l'application appropriée.

Vous pouvez également utiliser un enregistrement générique DNS (*) qui capturera tout, comme acme.myapp.com, joeschmoe.myapp.com, etc.

joeqwerty
la source