2011-05-25 71 views
5

我在使用VS 2010,WCF和Windows Azure的任務管理系統上工作。這是一個簡單的個性化任務管理應用程序該應用程序允許用戶組織和分享他們的任務。 不會有。用戶在我的項目中。如果某人「訂閱」了該應用程序,那麼我們需要爲他創建一個「空間」,並在其中添加子域或「子文件夾」。我如何在Windows Azure中實現子域映射。子域映射的真正優勢是什麼?windows azure中的子域映射

問候, Ranish

+2

我寫了一個[博客文章(http://www.stratospher.es/ blog/post/wildcard-subdomains-in-windows-azure)可能會派上用場。它詳細描述了使用Route 53和通配符CNAME路由。希望這有幫助。 -adam – 2012-03-07 06:28:30

回答

3

如果能夠產生許多子域名鏈接到Windows Azure的Web角色是一個DNS的綱領性重新配置,而不是Web角色配置的問題的問題。

亞馬遜提供了一個名爲Amazon Route 53的基於雲的DNS服務,您可以將其用於此目的。它實際上可以與Windows Azure一起使用。

然後,在您的webrole中,您需要應用一些ASP.NET調整來獲取初始Web請求的主機頭以獲取用戶正在瀏覽的實際子域。

+0

嗨Joannes Vermorel , 其實我沒有得到你。你能詳細解釋一下嗎?我是Azure的初學者。 你有任何示例代碼? 感謝您的回覆 – Ranish 2011-05-25 10:12:45

+0

我建議看看其他答案,其中一個斯圖爾特實際上是非常好的。 – 2011-05-26 12:57:28

1

我們避免需要爲每個「空間」創建DNS CNAME記錄,方法是使用DynDns Custom DNS創建將所有子域請求(* .ourdomain.com)路由到Web角色的通配符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記錄。)

+0

如何將「* .example.com」域名映射到我們的azure服務, 所有子域名,例如www.example.com,sub1.example.com和sub2.example.com都需要映射到 天藍色的服務。 我該如何設置?你有什麼主意嗎? – Ranish 2011-05-26 10:53:15

+0

首先,您必須找到支持通配符CNAME記錄的DNS主機。然後,您將配置一個指向yourazureapp.cloudapp.net的通配符CNAME。 – 2011-05-26 17:36:45

6

只是爲了幫助其他答案。

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提出的兩個建議都提出了建立這些映射的外部服務。對於一些其他的選擇 - 和亞馬遜的一些C#示例代碼 - 看到這個帖子http://computerone.co.nz/community/discussion/29/amazon-route-53-dns-request-in-c-using-the-rest-api/p1(有也是在http://www.proactiveit.co.nz/Route53/R53Connect/可負擔得起的C#庫)

+1

DynDns實際上允許您使用通配符CNAME。 – 2011-05-25 18:14:00

+0

哇 - 謝謝 - 我學到了一些新東西 - 看起來你也許可以在你的DNS主機上設置CNAME - http://serverfault.com/questions/44618/is-a-wildcard-cname-dns-記錄有效 - 再次感謝 - 已經爲您的答案+1了 – Stuart 2011-05-25 18:21:27

+0

我認爲一些示例代碼可以真正改善此答案。 – 2013-01-29 09:11:59