- 浏览: 15412 次
最新评论
Windows Azure Content Delivery Network的最佳实践
- 博客分类:
- 技术杂绘
Windows Azure Content Delivery Network的最佳实践
2011年03月22日
公告 :本博客为微软云计算中文博客 的镜像博客。 部分文章因为博客兼容性问题 ,会影响阅读体验 。如遇此情况,请访问 原博客。
公告 :本博客为微软云计算中文博客 的镜像博客。 部分文章因为博客兼容性问题 ,会影响阅读体验 。如遇此情况,请访问 原博客。 摘自: http://msdn.microsoft.com/en-us/library/gg680299.a spx 我该如何使用web.config在托管类型的 CDN发送中来管理缓存的行为?
Windows Azure Content Delivery Network(CDN)利用由托管服务提供cache control头(译者注:参考http://www.w3.org/Protocols/rfc2616/rfc2616-sec14. html 14.9 Cache Control)。如果内容是通过一个Web角色提供的,它将受到IIS的控制。静态内容的cache control头可以通过改变web配置中的元素中的元素进行定制。
例如:
下面的配置示例添加了一个"Expires: Tue, 19 Jan 2038 03:14:07 GMT"的HTTP头作为响应,配置要求从现在到期满之日为止。
在ASP.NET页面中,cache control被默认设置为私有。这样的话,Windows Azure CDN将无法存储这个内容。重写此方法,使用Response对象改变cache control默认设置。
例如:
Response.Cache.SetCacheability(HttpCacheability.Pu blic);
Response.Cache.SetExpires(DateTime.Now.AddYears(1) );
包含在你开始的根位置的设置将被继承到所有的子文件夹。请注意,你也可以在起始点的任何一个子目录下放置web.config文件,用来控制个人配置设置符合给定的子目录树。
你应该仅仅使用一个web.config文件添加非IIS默认的MIME类型。如果你使用一个web.config并重新定义一个标准的MIME类型的IIS可以返回500(请参见: http://blogs.msdn.com/b/chaun/archive/2009/12/04/i is7-error-cannot-add-duplicate-collection-entry-of- type-mimemap-with-unique-key-attribute-fileextensio n.aspx)。如果试图提供一个新的文件类型,作为一个最佳的方法,你通常只需要设置一个MIME类型并接收404。例如,通常在发布链接之前测试(如果需要的话)需要提供的新的文件类型并添加一个MIME类型。
用来管理我的Windows Azure项目中的不同的CDN环境的最佳办法有哪些?
例如,如果你想在相同的项目中拥有一个为测试环境vs.产品配置好的单独的CDN终端,我们建议在一个配置设置(ServiceConfiguration.cscfg)中放入不同的域,因为它们的值可以在运行中改变。但是web.config也是一个可接受的选择。
确保我的内容新鲜的最佳方法是什么?
设置好的到期cache头是确保新鲜度,控制成本,并向客户提供最佳性能的最简便的方法。
请参见http://msdn.microsoft.com/en-us/library/gg680305.a spx
我可以在Windows Azure CDN中使用不同的文件夹名吗?
当然可以。Windows Azure CDN仅仅反映URL结构到你的源内容,你可以根据你的需要,尽可能深的嵌套它。
在SDK 1.4版本中,对于托管服务对象的传递,你被局限于在你服务上的/cdn根目录下发布。
在缓存中如何使用查询字符串变量?
对于托管服务对象的传递,当你启用CDN的托管服务时,你可以在Windows Azure Developer Portal中切换这个行为。"启用"是指整个查询字符串将被用来作为对象的cache key的一部分;也就是说,具有相同的URL根路径但拥有不同查询字符串的对象将被贮存为单独的对象。"禁用"是指不同的查询字符串值被忽略,只有URL根路径作为cache key使用,所以不同的查询字符串被视作相同的对象,并且只贮存一次。
在BLOB存储起点,查询字符串总是被忽略。
有什么例子可以说明我如何使用HTTPS传递?
Windows Azure CDN上的HTTPS传递用来传递必须包含在一个安全的会话框内的公开有效的对象。例如,一个shopping cart可能会使用很多"chrome"对象包含graphics, buttons, static scripts和其他可重用的元素;在一个安全的shopping-cart页面流中,这些对象必须通过HTTPS来发送,以避免浏览器的警告。
Windows Azure CDN如何进行同步?
不会进行同步。在Windows Azure CDN中文件加载为"pull"。根据来自客户端的请求,文件被上传到一个单一的位置(例如 origin)并且进入到缓存节点中。
我的服务被部署在Windows Azure CDN的哪个节点?
当你部署到Windows Azure CDN,你会自动的被部署到我们所有的位置,并且你会添加到其他每个在线上的位置。你不需要做任何事情去开始利用一个新CDN节点。Windows Azure CDN利用Anycast将最终用户引导到最近的节点。
在Windows Azure CDN中符合字节范围要求的最佳做法是什么?
不要在一个大文件的结尾放置你的signatures/table-of-contents/catalog,然后使用一字节的GET去检索它。这会导致欠佳的性能。一个签名文件应该被放在一个文件的开始,或者更为理想的是作为一个单独的文件。
Windows Azure CDN如何使用压缩内容来工作?
Windows Azure CDN不会修改(增加)压缩内容到你的对象。Windows Azure CDN涉及到的任何压缩都是由基于"Accept-Encoding"头的起点提供。从1.4版本起,Azure Storage不再支持压缩。如果你想使用托管服务对象传递,你可以配置IIS来返回压缩对象。
我如何在Windows Azure CDN中清理或禁用内容?
从1.4版本起,没有清理功能。这个功能正在开发中。最新的操作是按照本文档和MSDN上的Windows Azure CDN文档中描述的设置好到期的cache头。
示例问题报告:"The CDN isn't getting fresh objects," 或者, "The CDN seems to be caching objects for 72 hours"
你没有发送Cache-Control头,或这传入了一个无效的值到我们的CDN,因此忽略了它,并且将贮存72个小时。
Cache-control头必须是"public"并且拥有一个大于300的值,否则CDN将会忽略它。如果你故意发送一个小于300的Cache-Control值,那么它的内容按理说不应该从一开始就放置到CDN。
请按照后面的链接所描述的,将你的过期时间调整为最佳值:http://msdn.microsoft.com/en-us/library/ff919705.a spx
CDN多久从起始处刷新一次对象?
这取决于对象cache-control头(或许缺少头),对象的通用性,双亲缓存能力和边缘应用。它将至少每节点每更新窗口访问内容源一次,并且跟踪If-Modified-Since刷新请求。
如果没有设置Cache-Control头,请参考上面"72 hours"的问题。
本文翻译自:http://blogs.msdn.com/b/windowsazure/archive/2011/ 03/18/best-practices-for-the-windows-azure-content- delivery-network.aspx
发表评论
-
Android应用程序开发环境搭建(WINDOWS)
2012-01-20 00:24 757Android应用程序开发环境 ... -
Windows消息机制VC
2012-01-20 00:24 584Windows消息机制VC 2011年0 ... -
Windows加载器与模块初始化
2012-01-20 00:23 1087Windows加载器与模块初始 ... -
基础要打好: 如何正确地进入基于x86-64Bit Windows系统的商业软件破解领域
2012-01-20 00:23 711基础要打好: 如何正确 ... -
培养阳光心态,培养积极性 的演讲稿
2012-01-19 01:20 532培养阳光心态,培养积极 ... -
我的元旦演讲稿
2012-01-19 01:20 479我的元旦演讲稿 2012年01月11日 尊敬各位的领导、 ... -
演讲稿
2012-01-19 01:20 667演讲稿 2011年12月21日 各位老师各位同学们,大家 ... -
演讲稿
2012-01-19 01:20 579演讲稿 2011年05月07日 竞职演讲稿 各位领导 ... -
演讲稿《相信自己》
2012-01-19 01:20 2422演讲稿《相信自己》 2012年01月12日 大家好,我非 ... -
多线程
2012-01-17 00:37 602多线程 2010年06月06日 ... -
Microsoft Windows CE系统介绍
2012-01-17 00:36 1000Microsoft Windows CE系统介 ... -
多线程
2012-01-17 00:36 578多线程 2011年05月15日 ... -
编程,乐趣何在?
2012-01-17 00:36 577编程,乐趣何在? 2011年12月20日 转载自:htt ... -
(转自CSDN Dinosoft's Blog)给钓鱼网站骗子一点颜色看看---一个简单的攻击程序
2012-01-17 00:36 1033(转自CSDN Dinosoft's Blog)给钓鱼网站骗子 ... -
Black Duck - Guan Yin Bodhisattva in Mind (2006)
2012-01-15 14:59 624Black Duck - Guan Yin Bodhisatt ... -
大范围雨雪天气10日起侵袭南方 或对春运不利
2012-01-15 14:59 681大范围雨雪天气10日起 ... -
广州8所机关幼儿园获补7524万 比去年增1770万
2012-01-15 14:59 620广州8所机关幼儿园获补7524万 比去年增1770万 201 ... -
什么啊.0.000
2012-01-15 14:59 634什么啊.0.000 2011年03月20日 ... -
无法使用千千静听的日子,太不爽了……哪个TMD的在千千网页里放了木马
2012-01-15 14:59 641无法使用千千静听的日子,太不爽了……哪个TMD的在千千网页里放 ...
相关推荐
Windows Azure
《实战windows azure:微软云计算平台技术详解》来自于微软 windows azure mvp 的技术实践和心得体会,主要包括windows azure 平台的基础知识、使用方法、功能特点以及如何基于windows azure 平台设计高可靠、可扩展...
全书共12章,内容包括云计算概论、云计算技术概观、初探Windows Azure、Windows Azure应用程序开发基础、Windows Azure应用程序开发:Table存储服务、Windows Azure应用程序开发:BLOB存储服务、Windows Azure应用...
微软WindowsAzure云应用开发实践整理.pdf
Windows Azure 概述
《实战Windows Azure:微软云计算平台技术详解》来自于微软 Windows Azure MVP 的技术实践和心得体会,主要包括Windows Azure 平台的基础知识、使用方法、功能特点以及如何基于Windows Azure 平台设计高可靠、可扩展...
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入门教学系列
《Windows Azure从入门到精通》针对微软的云计算平台windows azure,循序渐进地介绍了如何构建和管理云端的可扩展应用,一次一个知识点,同时辅之以适当的练习,可帮助读者轻松掌握基本的编程技能,掌握windows ...
简要描述Windows Azure最新的功能、特色和主要的服务
70-583 PRO: Windows Azure 题库
Windows Azure使用入门 第二课:建立自己的网站.pdf
windows azure
Cloud Computing with the Windows Azure Platform Azure电子书 第一本详细介绍Azure的书籍.共363页 文字版,可打印
Windows Azure用户注册流程 非常详细
Windows Azure云平台概述.pdf
Windows Azure Windows Azure Windows Azure Windows Azure Windows Azure Windows Azure Windows Azure Windows Azure Windows Azure 公有云平台是 微软 云操作系统愿景的三大重要组成部分之一,这平台将会转变 ...
Windows Azure快速入门——为什么选择Windows Azure
Windows Azure从入门到精通含源代码,接受微软的云服务平台Windows Azure帮助包含源代码