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


8

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

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

此外,是否有任何特殊规定需要我完成?当我的应用程序准备就绪并且正在寻找托管服务时,我是否需要主机提供的任何限制我选择的内容?我还考虑使用Windows Azure来利用云的优势-如果我将Azure作为托管平台使用,我是否仍然能够做到这一点?


这是IIS的哪个版本,是6还是7
Sam Cogan,2009年

IIS7(运行Win7的本地框)。托管可能会在Server 2008上进行,因此我可以始终使用IIS7。
韦恩·莫利纳

Answers:


5

正如Joe所提到的,与IIS相比,您将对DNS进行更多操作。

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


因此,如果不进行域设置并使用DNS进行处理,就无法“伪造”它吗?我问是因为我想测试帐户部分(例如acme.myapp.xxx检索Acme的帐户),但是如果我理解正确,这意味着除非购买域并设置,否则我无法使用IIS进行测试。 IP地址?
韦恩·莫利纳

2
好吧,如果您只是想测试它,则可以设置IIS,然后在本地HOST文件中添加要测试的子域的某些条目,因此它们指向您的IIS服务器,这将允许您在计算机上进行测试,而无需购买域名。
山姆·科根

只要您的IIS中每个端口只有一个应用程序。
马克·克莱门特

2

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.