Como configurar curingas do IIS para subdomínios da conta (como Basecamp)?

8

Na verdade, estou trabalhando em um aplicativo SaaS no qual desejo dar aos assinantes seu próprio subdomínio para acessar suas informações (no código, puxarei a primeira parte do subdomínio para uso como nome da conta), semelhante à maneira como Basecamp e tudo trabalhos. Por exemplo, um assinante pode ter o URL acme.myapp.com. Como pode haver centenas de assinantes, não posso simplesmente adicionar um cabeçalho de host diferente para cada cliente.

O Apache permite especificar um curinga (*) e redirecionará o acme.myapp.com para o myapp.com, no qual eu posso executar minha lógica para recuperar o nome da conta do usuário com base no subdomínio. Não sei como fazer isso automaticamente com o IIS (já faz um tempo desde que eu tive que configurar o IIS para qualquer coisa, exceto um único site).

Além disso, existem disposições especiais necessárias para fazer isso? Quando meu aplicativo estiver pronto e pretendo hospedá-lo, precisarei de algo específico do host que limite minhas opções? Eu também estava pensando em usar o Windows Azure para aproveitar a nuvem - ainda seria capaz de fazer isso se fosse com o Azure como plataforma de hospedagem?

Wayne Molina
fonte
Qual versão do IIS é este, 6 ou 7
Sam Cogan
IIS7 (caixa local executando o Win7). A hospedagem provavelmente estará no Server 2008, para que eu possa assumir o IIS7 sempre.
23119 Wayne Molina

Respostas:

5

Como Joe mencionou, você faria isso mais com DNS do que com IIS.

O IIS não tem suporte para domínios curinga * .domain.com. Em vez disso, você criaria um site no IIS que não tinha cabeçalhos de host, portanto responderia a todas as solicitações nesse IP que não foram atendidas por outros sites que tinham cabeçalhos de host. Você criaria sua entrada DNS de caractere curinga para apontar para o IP desse site e pronto.

Sam Cogan
fonte
Portanto, não há como "fingir" sem ter o domínio configurado e fazê-lo com o DNS? Estou perguntando porque gostaria de testar a parte da conta (por exemplo, que o acme.myapp.xxx recupera a conta do Acme), mas se estou entendendo direito, significa que não posso testar isso com o IIS, a menos que compre o domínio e defina o endereço IP?
23119 Wayne Molina
2
Bem, se você quiser apenas testá-lo, poderá configurar o IIS e, em seguida, colocar algumas entradas no arquivo HOST local para os subdomínios que deseja testar, para que eles apontem para o servidor IIS, permitindo que você os teste em sua máquina sem comprando o domínio.
21410 Sam Samogan
Contanto que você tenha apenas um aplicativo por porta no seu IIS.
Marc Climent
2

Se estou entendendo corretamente, você pode usar o DNS para fazer isso. Supondo que myapp.com seja seu domínio, adicione na sua zona DNS myapp.com um registro CNAME (acme) que aponte para o registro A do seu site (www.myapp.com). Isso os enviará para o site principal, onde seu código assumirá o controle e os redirecionará para o aplicativo apropriado.

Você também pode usar um registro curinga de DNS (*) que captura tudo, como acme.myapp.com, joeschmoe.myapp.com etc.

joeqwerty
fonte