如何为帐户子域(如 Basecamp)配置 IIS 通配符?

Way*_*ina 8 iis cloud-computing subdomain url-routing

实际上,我正在开发一个 SaaS 应用程序,我想为订阅者提供他们自己的子域来访问他们的信息(在代码中,我将提取子域的第一部分用作他们的帐户名),类似于 Basecamp 等工作。例如,订阅者可能有 URL acme.myapp.com。由于可能有数百个订阅者,我不能简单地为每个客户端添加不同的主机头。

Apache 允许您指定通配符 (*) 并将 acme.myapp.com 重定向到 myapp.com,我可以在其中执行我的逻辑以根据子域检索用户的帐户名。我不确定如何使用 IIS 自动执行此操作(自从我不得不为单个网站以外的任何内容配置 IIS 已经有一段时间了)。

另外,是否有任何特殊规定需要我完成此操作?当我的应用程序准备就绪并且我正在考虑为其托管时,我是否需要来自主机的任何特定内容来限制我的选择?我还考虑使用 Windows Azure 来利用云 - 如果我使用 Azure 作为托管平台,我还能这样做吗?

Sam*_*gan 5

正如乔提到的,你会用 DNS 来做这件事,而不是 IIS。

IIS 不支持 *.domain.com 通配符域。相反,您将在 IIS 中创建一个没有主机标头的站点,因此将响应该 IP 上的所有请求,这些请求没有被其他具有主机标头的站点接收。然后,您将创建通配符 DNS 条目以指向该站点的 IP 并完成。

  • 好吧,如果您只是想测试它,您可以设置 IIS,然后在您要测试的子域的本地 HOST 文件中放置一些条目,以便它们指向您的 IIS 服务器,这将允许您在您的机器上测试它们,而无需购买域名。 (2认同)

joe*_*rty 2

如果我理解正确的话,您可以使用 DNS 来执行此操作。假设 myapp.com 是您的域,则在 myapp.com DNS 区域中只需添加一条指向您网站 (www.myapp.com) 的 A 记录的 CNAME 记录 (acme)。这会将它们发送到您的主网站,您的代码将接管并将它们重定向到适当的应用程序。

您还可以使用 DNS 通配符记录 (*),它将捕获所有内容,例如 acme.myapp.com、joeschmoe.myapp.com 等。