Azure中的自定义域映射

Azure中的自定义域映射

问题描述:

我有一个.NET MVC 3,在Azure上运行的SQL Server应用程序。它有2个Web角色实例和一个工作者角色实例。Azure中的自定义域映射

我们目前允许客户在显示我们内容的网站中插入一个iFrame(我知道,它不是理想的,但只有我自己)。

要获得此内容,我们有一个公共页面,接受公司的唯一标识符。例如,*将使用'http://myapplication.com/stack-overflow'。这将返回一个特定于公司的html页面。

我们喜欢将CName记录直接映射到客户端上的应用程序的内容。根据我的理解,我们需要接受,在*的情况下,'stack-overflow.myapplication.com'找到提取子目录并返回内容'http://myapplication.com/stack-overflow'。

任何人都可以谈谈如何在Azure上完成这个任务吗?

任何帮助都会有很多学徒。

问候, 布赖恩

这将是Azure和已部署的应用程序的任何IIS相同。您只需将所有自定义子域映射为CNAME即可到您的cloudapp.net域。请勿更改服务定义和/或配置文件中的任何内容。而withing您的应用程序,有一个简单的逻辑,将检查:

Request.Headers["host"] 

这头将有完整的主机名(即stack-overflow.myapplication.com)。您现在可以解析URL,提取子域并将其映射到适当的资源。

另一种方法是使用IIS的URL重写模块,并构建类似I did with Apache Web Server and mod_rewrite(我认为你需要的东西)的东西。我不确定您是否可以将我的Apache重写规则1:1用于IIS重写模块,但这将是一个很好的起点。请注意,现在(自Azure SDK 1.3以来)URL重写模块默认在Azure完全IIS中启用)。

+0

谢谢安东 - 这正是我所期待的。关于这个的一个简短的问题如您所知,Azure中的主机名采用“name.cloudapp.net”格式。我们的网站位于'www.domain.com',我们的应用位于'app.domain.com'(然后指向Azure实例 - 'name.cloudapp.net')。这种方法是否仍然适用于子子域? – 2012-01-31 11:33:47

+0

嗯,从来没有尝试过子子域名,但只要你CNAME的子子域名yourapp.cloudapp.net,它会好的 – astaykov 2012-01-31 12:16:06

+0

优秀的东西,这对你的帮助! – 2012-01-31 16:25:15