iis cname到子域名,从请求中获取子域名

时间:2012-12-14 06:53:19

标签: asp.net iis azure asp.net-mvc-4 cname

我真正想做的是建立一个名为site.com的azure网站。然后有数百个子域名,如foo.site.com,bar.site.com,baz.site.com等。我的asp.net mvc应用程序将拉出子域,因为它将用作标识符。 接下来,我想将其他域名CNamed到子域名。例如hello.othersite.com - > foo.site.com,以便浏览器仍然显示hello.othersite.com但我能够从请求中获取foo子域。

我不想配置任何这个,因为会有很多子域,基本上每个帐户一个。

这实际上可行吗?

我已经尝试了一些测试,但我不能100%确定如何继续。我愿意:

  1. 设置site.com接受* .site.com
  2. CNAME hello.othersite.com到foo.site.com(我想要屏蔽,转发等吗?)
  3. 传入的http请求是否包含有关子域(foo)的任何信息 它是CNAMED?
  4. 我希望这不是太模糊和浪漫,但对其合理性的一些确认将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

它不仅仅是Azure,而是整个网络。

我认为不可能将hello.othersite.com的HTTP请求从DNS实际映射到foo.site.com。这是因为您的实际HTTP请求看起来像

GET /index.html HTTP/1.1
(other headers)
host: hello.othersite.com

您的网络服务器无论是什么,都不知道hello.othersites.com是通过CNAME映射到foo.site.com的。您收到的请求是hello.othersite.com

如果您进行转发,则用户永远不会留在hello.othersite.com,但会被重定向到foo.site.com。我想这不是你想要的。

直接域掩码通常通过iFrame完成,也不建议使用。

我会做以下事情,因为此刻没有其他想法:

  1. 设置网站以接受*.site.com*.othersite.com
  2. 将通配符CNAME映射添加到我的Azure云服务,即*.site.com - > CNAME - > my.cloudapp.net。我希望拥有的两个自定义域都相同。
  3. 在我的应用中执行必要的检查以确定域映射< - >用户帐户。