Wie konfiguriere ich IIS-Platzhalter für Konto-Subdomänen (wie Basecamp)?

8

Tatsächlich arbeite ich an einer SaaS-Anwendung, in der ich Abonnenten eine eigene Subdomain für den Zugriff auf ihre Informationen geben möchte (im Code werde ich den ersten Teil der Subdomain zur Verwendung als Kontoname abrufen), ähnlich wie bei Basecamp et al Arbeit. Beispielsweise kann ein Abonnent die URL haben acme.myapp.com. Da es Hunderte von Abonnenten geben kann, kann ich nicht einfach für jeden Client einen anderen Host-Header hinzufügen.

Mit Apache können Sie einen Platzhalter (*) angeben und acme.myapp.com an myapp.com umleiten, wobei ich meine Logik ausführen kann, um den Kontonamen des Benutzers basierend auf der Subdomain abzurufen. Ich bin mir nicht sicher, wie ich das automatisch mit IIS machen soll (es ist eine Weile her, seit ich IIS für etwas anderes als eine einzelne Website konfigurieren musste).

Gibt es auch spezielle Bestimmungen, die ich dazu benötige? Benötige ich etwas Spezielles vom Host, das meine Auswahl einschränkt, wenn meine App fertig ist und ich das Hosting dafür in Betracht ziehe? Ich habe auch überlegt, Windows Azure zu verwenden, um die Cloud zu nutzen. Würde ich dies trotzdem tun können, wenn ich Azure als Hosting-Plattform verwenden würde?

Wayne Molina
quelle
Welche Version von IIS ist das, 6 oder 7
Sam Cogan
IIS7 (lokale Box mit Win7). Das Hosting wird wahrscheinlich auf Server 2008 sein, daher kann ich immer von IIS7 ausgehen.
Wayne Molina

Antworten:

5

Wie Joe bereits erwähnt hat, würden Sie dies eher mit DNS als mit IIS tun.

IIS unterstützt keine * .domain.com-Platzhalterdomänen. Stattdessen würden Sie eine Site in IIS erstellen, die keine Host-Header enthält, und auf alle Anforderungen auf dieser IP antworten, die nicht von anderen Sites mit Host-Headern erfasst wurden. Anschließend erstellen Sie Ihren Platzhalter-DNS-Eintrag, um auf die IP-Adresse dieser Site zu verweisen, und fertig.

Sam Cogan
quelle
Es gibt also keine Möglichkeit, es zu "fälschen", ohne die Domain eingerichtet zu haben und es mit DNS zu tun? Ich frage, weil ich den Kontoteil testen möchte (z. B. dass acme.myapp.xxx das Konto für Acme abruft), aber wenn ich richtig verstehe, bedeutet dies, dass ich dies nicht mit IIS testen kann, es sei denn, ich kaufe die Domain und setze sie IP-Adresse hoch?
Wayne Molina
2
Wenn Sie es nur testen möchten, können Sie IIS einrichten und dann einige Einträge in Ihre lokale HOST-Datei für die zu testenden Subdomains einfügen, damit diese auf Ihren IIS-Server verweisen. Auf diese Weise können Sie sie auf Ihrem Computer ohne testen Kauf der Domain.
Sam Cogan
Solange Sie nur eine Anwendung pro Port in Ihrem IIS haben.
Marc Climent
2

Wenn ich Sie richtig verstehe, können Sie DNS verwenden, um dies zu tun. Angenommen, myapp.com ist Ihre Domain, fügen Sie in Ihrer DNS-Zone myapp.com einfach einen CNAME-Eintrag (acme) hinzu, der auf den A-Eintrag für Ihre Website verweist (www.myapp.com). Dadurch werden sie an Ihre Hauptwebsite gesendet, wo Ihr Code sie übernimmt und an die entsprechende Anwendung weiterleitet.

Sie können auch einen DNS-Platzhaltereintrag (*) verwenden, der alles abfängt, z. B. acme.myapp.com, joeschmoe.myapp.com usw.

Joeqwerty
quelle