Windows Azure 上的托管服务CDN
- 博客分类:
- 技术杂绘
Windows Azure 上的托管服务CDN
2011年03月11日
公告 :本博客为微软云计算中文博客 的镜像博客。 部分文章因为博客兼容性问题 ,会影响阅读体验 。如遇此情况,请访问 原博客 。
昨天我告诉正坐在我边上的一个同事,怎样在Windows Azure上发布的网站上对静态内容启用CDN。方法如下:
1.将静态内容(如图片,CSS文件等)移到博客中存储。
2.在他的存储账户中启用CDN。
3.把这些静态文件的URL改为CDN URL。
我想这是使用CDN的最普通的步骤了。但是今天早上我在Windows Azure 博客上发现新版本Windows Azure SDK 1.4 和新版本Windows Azure Developer Portal 已经被发布了。此CDN的发行版本的一个新特性是:我们不仅可以为存储账户启用CDN,也可以为托管服务启用CDN。这个新特性给我的启示是上面的步骤将变得简单了许多
启用托管服务CDN
我们只需要登录 Windows Azure Developer Portal 就可以启用托管服务CDN了。在"Hosted Services, Storage Accounts & CDN" 项下面我们可以发现左边的一个叫CDN的新菜单,在这里我们可以管理存储账户和托管服务CDN。我们可以看到托管服务和存储账户都被列在订阅中。
启用托管服务CDN是很简单的,只需在顶端选择一个托管服务,然后点击 New Endpoint 按钮即可。
在这个对话框里,我们可以选择我们希望启用CDN的订阅,存储账户或是托管服务。例如上图中,如果我选择了托管服务,"Source URL for the CDN endpoint"就会自动显示。这意味着Windows Azure 平台将使"/cdn"文件夹下所有内容启用CDN。但是此时我们不能改动它的值。
下面紧挨着URL的3个复选框是:
1.启用CDN:启用或不启用CDN。
2.HTTPS:如果我们需要使用HTTPS连接,选中它。
3.查询字符串:如果我们缓存托管服务内容或使用查询字符串来指定被恢复的内容,选中它。
只需点击 "Create"按钮就可以让Windows Azure 为我们创建托管服务CDN。系统会提醒你CDN在60分钟内可用。我觉得大约15分钟CDN可以使用,我们也可以在网页中找到CDN URL。
在托管服务CDN中添加内容
我们使用MVC2网站框架在Visual Studio上创建一个Windows Azure 项目。当我们创建CDN时,系统提醒CDN端点的源URL将放在"/cdn"文件夹下。所以我们在网站上用Visual Studio创建一个命名为"/cdn"的文件夹来存放静态文件。然后如果我们使用CDN端点,所有的文件将被CDN缓存。
托管服务CDN在查询字符串特性被启用时可以缓存一些"动态的"内容。我们在它上创建了一个叫做CdnController 的控制器和GetNumber action 。这个控制器的URL路径为 /Cdn/GetNumber ,这个路径也可以使用CDN因为URL说明了它存放在"/cdn"文件夹下。 在GetNumber action 里我们只需要把一个被参数指定的数值放到视图模型中,然后URL就会形如 /Cdn/GetNumber?number=2. 1:using System; 2:using System.Collections.Generic; 3:using System.Linq; 4:using System.Web; 5:using System.Web.Mvc; 6: 7:namespace MvcWebRole1.Controllers 8: { 9:publicclass CdnController : Controller 10: { 11:// 12:// GET: /Cdn/ 13: 14:public ActionResult GetNumber(int number) 15: { 16:return View(number); 17: } 18: 19: } 20: }
我们添加视图来显示数值,非常简单,方法如下: 1:" %> 2: 3: 4: GetNumber 5: 6: 7: 8: 9:The number is: 10: 11:
因为这个action是在CdnController 下,所以URL也会在"/cdn"文件夹下,这意味着它可以使用CDN。因为我们选中了 "Query String" ,动态页面内容根据它的query string来进行缓存,所以如果我们使用了CDN URL ,http://az25311.vo.msecnd.net/GetNumber?number=2, CDN将会首先检查是否有内容使用"GetNumber?number=2"进行缓存。如果有,CDN会直接返回内容,否则,它会连接托管服务,http://aurora-sys.cloudapp.net/Cdn/GetNumber?numbe r=2, 然后返回结果给浏览器并且在CDN中缓存。
But to be notice that the query string are treated as string when used by the key of CDN element. This means the URLs below would be cached in 2 elements in CDN:
但是需要注意的是当查询字符串被CDN元素键使用时应作为字符串看待。这意味着下面的URL将在CDN的两个元素里缓存: 在Azure上发布项目以后,我们在网站上使用CDN。我们创建的CDN端点是az25311.vo.msecnd.net 所以在"/cdn"文件夹下可以被请求到。让我们在 sample.htm页面和 c_great_wall.jpg静态文件中试一下。
我们在CDN端点上使用查询字符串也可以请求到动态页面GetNumber
因为来自CDN的内容不需要MVC服务器的处理,所以如果我们刷新这个页面它就会迅速显示出来。
我们这个页面风格丢失了,这是因为CSS文件不包含在"/cdn"文件夹里所以页面不能在CDN URL 中检索到CSS。
总结
在这个帖子中,我介绍了Windows Azure SDK 1.4 发行版本和新Developer Portal 中的 Windows Azure CDN 新特性。使用托管服务CDN,我们可以只在"/cdn"文件夹中存放静态资源,所以CDN可以自动缓存他们,不需要让它们在blob中存储。使用查询字符串特性也可以支持动态内容缓存。所有我们可以使用 UserController 和 CDN可以缓存网页的一部分内容。例如:我们可以在母板面中的用户控件上缓存日志,使得日志可以更迅速的显示出来。
发行版本的其他新特性请点击这里。更多的Windows Azure CDN详细信息请点击这里。
希望以上对你有所帮助,
Shaun
本文翻译自:http://geekswithblogs.net/shaunxu/archive/2011/03/ 10/cdn-on-hosted-service-in-windows-azure.aspx
发表评论
-
PHP on Windows Azure 入门教学系列(3) ――在Windows Azure中部署Wordpress
2012-01-20 00:27 628PHP on Windows Azure 入门教学系列(3) ... -
windows驱动编程学习顺序?
2012-01-20 00:27 721windows驱动编程学习顺序? 2010年11月19日 ... -
Windows Azure(四-2):云端的文件系统(Blob Storage)
2012-01-20 00:27 752Windows Azure(四-2):云端的文件系统(Blob ... -
我和精华园的Victor song
2012-01-19 01:24 658我和精华园的Victor song ... -
梅西:我还要更多的金球 我和哈维的友谊超越足球
2012-01-19 01:24 597梅西:我还要更多的金球 我和哈维的友谊超越足球 2012年0 ... -
■ 康爷我爱你
2012-01-19 01:24 549■ ... -
2011-12-31 冷
2012-01-19 01:24 6522011-12-31 冷 2011年12月31 ... -
DX 英语辅导员之我的“谢幕演说”
2012-01-19 01:24 630DX 英语辅导员之我的“ ... -
广电总局:每集电视剧不得以任何形式插播广告
2012-01-15 15:02 801广电总局:每集电视剧不得以任何形式插播广告 2011年11月 ... -
鞍山涉黑人大代表敛财20亿 欲逃美国被抓(图)
2012-01-15 15:02 824鞍山涉黑人大代表敛财2 ... -
重庆原人大代表因涉黑非法敛财被判无期(图)
2012-01-15 15:02 538重庆原人大代表因涉黑 ...
相关推荐
在windowsazure中托管和使用wcf.
Windows Azure
Queue存储服务与应用程序问通信、云上的关系数据库:SQL Azure、云上的访问控制技术:AppFabric Access Control、云服务的集散中心:AppFabric Service Bus、Windows Azure与其他平台的互操作性、云计算与Windows ...
第3 章到第7 章,通过完整的示例项目系统地介绍windows azure(计算服务、存储服务和部署调试)、sql azure 和windows azure appfabric。最后一章介绍了windows azure平台的高级应用,包括更加深入的功能点、如何在...
Windows Azure 概述
Windows Azure服务总线
70-583 PRO: Windows Azure 题库
循序渐进地介绍了如何构建和管理云端的可扩展应用,一次一个知识点,同时辅之以适当的练习,可帮助读者轻松掌握基本的编程技能,掌握windows azure云计算平台的核心服务和特性,是一本理想的入门教程。 《Windows ...
Build, deploy and manage cloud solutions using combination of Windows Azure Pack, System Center and Hyper-V Impress your peers at work by learning to build applications that can leverage the cloud to ...
简要描述Windows Azure最新的功能、特色和主要的服务
第3章到第7章,通过完整的示例项目系统地介绍Windows Azure(计算服务、存储服务和部署调试)、SQL Azure 和Windows Azure AppFabric。最后一章介绍了Windows Azure平台的高级应用,包括更加深入的功能点、如何在项目...
Windows Azure入门教学系列
Azure能够将处于云端的开发者个人能力,同微软全球数据中心网络托管的服务,比如存储、计算和网络基础设施服务,紧密结合起来。这样,开发者就可以在“云端”和“客户端”同时部署应用,使得企业与用户都能共享资源...
介绍Windows Azure上多种存储服务: -结构化的SQL数据库和SQL报表 -半结构化的Table,消息型存储Queue -二进制的Blob,虚拟机磁盘,CDN -大数据引擎HDinsights(Hadoop) -分布式缓存Caching
Windows Azure使用入门 第五课:用户认证上下打通.pdf
Windows Azure使用入门 第二课:建立自己的网站.pdf
Cloud Computing with the Windows Azure Platform Azure电子书 第一本详细介绍Azure的书籍.共363页 文字版,可打印
Windows Azure用户注册流程 非常详细
windows azure
Windows Azure云平台概述.pdf