【问题标题】:Sub domain mapping in windows azurewindows azure 中的子域映射
【发布时间】:2011-05-25 06:01:49
【问题描述】:

我正在使用 VS 2010、WCF 和 Windows Azure 开发任务管理系统。这是一个简单的个性化任务管理应用程序。该应用程序允许用户组织和共享他们的任务。 将没有。我项目中的用户数。如果有人“订阅”该应用程序,那么我们将需要为他创建一个带有子域或“子文件夹”的“空间”。如何在 Windows azure 中实现子域映射。子域映射的真正优势是什么?

问候, 兰尼什

【问题讨论】:

  • 我已经写了一个blog post 关于这个主题可能会派上用场。它详细描述了使用 Route 53 和通配符 CNAME 路由。希望这会有所帮助。 -亚当

标签: azure subdomain


【解决方案1】:

只是为了帮助其他答案。

Azure 将请求路由到您的实例的主要机制是使用“CNAME”DNS 记录 - http://en.wikipedia.org/wiki/CNAME_record

这些 CNAME 记录基本上告诉客户端(浏览器)www.mydomain.com 是 myapp.cloudapp.net 的别名

遗憾的是,您不能 CNAME 通配符根据您的 DNS 主机,您可能无法使用通配符 CNAME 记录(请参阅https://serverfault.com/questions/44618/is-a-wildcard-cname-dns-record-valid),因此为了将多个子域映射到同一个 Azure 实例,那么您可能需要设置多个 CNAME 记录 - 每个要重新路由的子域一个 - 即当您注册客户“新”时,您需要添加一个新的 CNAME 记录映射“new.mydomain.com”到 myapp。 cloudapp.net

Joannes 和 jmac 的两个建议都建议使用外部服务来设置这些映射。有关其他一些选项 - 和一些 Amazon C# 示例代码 - 请参阅这篇文章 http://computerone.co.nz/community/discussion/29/amazon-route-53-dns-request-in-c-using-the-rest-api/p1http://www.proactiveit.co.nz/Route53/R53Connect/ 上还有一个经济实惠的 C# 库)

【讨论】:

  • DynDns 实际上允许您使用通配符 CNAME。
  • 哇 - 谢谢 - 我学到了一些新东西 - 看起来你也可以在你的 DNS 主机上设置 CNAME - serverfault.com/questions/44618/… - 再次感谢 - 已经 +1 了你的答案
【解决方案2】:

能够生成许多链接到 Windows Azure Web 角色的子域是 DNS 的编程重新配置问题,而不是 Web 角色配置问题。

Amazon 提供了一个名为 Amazon Route 53 的基于云的 DNS 服务,您可以将其用于此目的。它实际上适用于 Windows Azure。

然后,在您的 webrole 中,您需要应用一些 ASP.NET 调整来获取初始 Web 请求的主机标头,以获取用户正在浏览的实际子域。

【讨论】:

  • 嗨,Joannes Vermorel,其实我没听懂你。你能详细解释一下吗?我是 Azure 的初学者。你有任何示例代码吗?感谢您的回复
  • 我建议看看其他答案,Stuart 的答案其实很好。
【解决方案3】:

通过使用DynDns Custom DNS 创建将所有子域请求 (*.ourdomain.com) 路由到 Web 角色的通配符 CNAME 记录,我们避免了为每个“空间”创建 DNS CNAME 记录的需要。如果您决定走这条路,您的网络角色将解析传入请求的子域以查找用户的“空间”。

来自 DynDns 文档:

别名 (CNAME) 记录

CNAME 记录一个主机名到另一个主机名的别名。例如,许多客户将 www.domain.com 别名为 domain.com;这可确保 www.domain.com 和 domain.com 始终分配给相同的 IP 地址。自定义 DNS 中的 CNAME 记录采用以下选项:

与主机 (A) 记录一样,主机名字段仅限于允许字符 A 到 Z、数字 0 到 9 和连字符 (-)。主机名字段可以使用星号 (*) 生成通配符 CNAME 记录。 (主机名字段不能留空,因为 RFC 禁止二级 CNAME 记录。)

【讨论】:

  • 如何将“*.example.com”域映射到我们的 azure 服务,所有子域,如 www.example.com、sub1.example.com 和 sub2.example.com 都需要映射到相同的天蓝色服务。我该如何设置?你有什么想法吗?
  • 首先,您必须找到一个支持通配符 CNAME 记录的 DNS 主机。然后,您将配置一个指向 yourazureapp.cloudapp.net 的通配符 CNAME。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多