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
发表评论
-
Windows Mobile 平台EDB 数据库的应用与开发
2012-01-20 09:30 755Windows Mobile 平台EDB 数据 ... -
PHP on Windows Azure 入门教学系列(3) ――在Windows Azure中部署Wordpress
2012-01-20 09:30 641PHP on Windows Azure 入门教学系列(3) ... -
windows驱动编程学习顺序?
2012-01-20 09:30 602windows驱动编程学习顺序? 2010年11月19日 ... -
Windows Azure(四-2):云端的文件系统(Blob Storage)
2012-01-20 09:30 687Windows Azure(四-2):云端的文件系统(Blob ... -
中国哲学史(先秦部分)-------简答
2012-01-19 14:32 766中国哲学史(先秦部分)-------简答 2012年01月0 ... -
夏商与西周》第四十二章之昭王伐楚(二)
2012-01-19 14:32 611夏商与西周》第四十二章之昭王伐楚(二) 2012年01月08 ... -
龄欣哔日志蹈诒刺陕疥赤
2012-01-19 14:32 703龄欣哔日志蹈诒刺陕疥赤 2012年01月09日 ... -
古玩辨伪之青铜器
2012-01-19 14:31 537古玩辨伪之青铜器 2012年01月09日 ... -
日本法定假日简介
2012-01-19 14:31 568日本法定假日简介 2012 ... -
【转】 AS3.0 中root和parent的用法
2012-01-17 04:19 732【转】 AS3.0 中root和parent的用法 2011 ... -
JavaScript之Global对象
2012-01-17 04:19 562JavaScript之Global对象 2011年08月24 ... -
JavaScript中的 try...catch和异常处理(转)
2012-01-17 04:19 622JavaScript中的 try...catch和异常处理(转 ... -
JavaScript的函数和异常处理
2012-01-17 04:19 623JavaScript的函数和异常处 ... -
JS的try..catch..finally
2012-01-17 04:19 694JS的try..catch..finally 2011年09 ... -
海洋随笔《三》
2012-01-16 03:08 588海洋随笔《三》 2011年12月07日 天再次进入黑暗, ... -
这文章看得我心里酸溜溜的,送给每一个爱老公的女人…
2012-01-16 03:08 768这文章看得我心里酸溜溜的,送给每一个爱老公的女人… 2011 ... -
《 つ 谢谢你勾引我老公1。文/唐丰有》
2012-01-16 03:08 657《 つ 谢谢你勾引我老公1。文/唐丰有》 20 ... -
最性感的地方
2012-01-16 03:08 619最性感的地方 2011年12 ... -
[耀湾/微亚细亚] 夜降り萃梦乡 FIN.
2012-01-16 03:08 753[耀湾/微亚细亚] 夜降り萃梦乡 FIN. 2009年02月 ...
相关推荐
- **部署流程**:在Windows Azure上部署服务涉及到创建、配置和发布应用的过程。 - **更新机制**:当需要更新已部署的服务时,可以利用Windows Azure提供的工具和服务进行版本控制和更新管理。 #### 八、主机操作...
5. **发布网站**:利用 Visual Studio 2013 的发布功能,可以直接将网站部署到 Windows Azure 上。 6. **监控与调试**:发布后,可以通过 Visual Studio 2013 的工具进行远程调试和监控,确保网站正常运行。 #### ...
- **Worker Role Instances** - 运行Windows上的代码,可以用于执行后台任务,如数据处理、视频编码等。 - **VM Role Instances** - 支持用户自定义的Windows Server 2008 R2镜像,适用于将本地Windows Server应用...
通过Windows Azure,企业能够快速构建和发布全球覆盖的网站,利用CDN服务提高内容分发速度,同时,通过流量管理器优化全球用户的访问体验。 总的来说,Windows Azure作为一个全面的公有云解决方案,不仅提供了基础...
- **从本地或托管应用中使用云存储**:即使应用程序部署在本地或第三方数据中心,也可以通过Windows Azure提供的存储服务进行数据备份或异地容灾。 #### 更深入理解Windows Azure - **构建Windows Azure应用程序**...
描述中提到的“支持存储队列的Laravel Azure包”暗示我们正在处理一个扩展包,这个包可能是为了帮助开发者更好地在Azure上利用存储队列服务。在Laravel中,队列可以用来处理耗时的任务,如发送电子邮件或执行后台...
此解决方案还使基于Azure CDN的域能够使用“让我们加密”证书(如果要通过Azure Blob存储托管静态网站的自定义域名,则需要使用Azure CDN)。 如果您想知道如何设置由Blob Storage支持的基于Azure CDN的网站,请。...
开发者可以利用Azure来托管Web应用、数据库、存储服务等,并且可以通过Azure DevOps实现持续集成和持续部署(CI/CD)。 **Laravel 应用部署到 Azure** 1. **设置Azure Web App**: 在Azure Portal中创建一个新的Web...
其中具体的服务包括但不限于虚拟机 (Virtual Machines)、云服务 (Cloud Services)、网站托管 (Web Sites)、移动服务 (Mobile Services)、存储服务 (Storage)、SQL 数据库 (SQL Database)、Hadoop 分析服务 ...
- 使用Azure存储常规账户V2的$web容器,可以直接托管静态内容,支持自定义域名、CDN和SSL。 9. **快照**: - 快照是Blob或文件的只读副本,用于备份目的。创建后可以读取、复制或删除,但不能修改。 10. **存储...
- **Azure SQL Database**或**Azure PostgreSQL**:为Sitecore数据库提供云托管服务,确保数据的高可用性和安全性。 - **Azure Blob Storage**:用于存储Sitecore媒体库内容和其他非结构化数据。 - **Azure CDN**...
5. **Azure Functions和静态网站**:在Azure上,开发者可能使用Azure Functions托管后端逻辑,同时用存储帐户托管静态内容(如HTML、CSS和JavaScript)。配置函数应用和静态网站的访问规则可能会涉及CSS的加载路径...
通常,有两种方法可以在Azure Functions上托管Next.js应用程序: 使用一个接受请求并通过Next.js的服务器模式路由请求的函数 将每个页面发布为单独的Azure函数 jetzt使用第二种方法。 每个页面都包装有一个小的,...
标题 "Azure邀请" 暗示我们关注的是与微软Azure云平台相关的技术...综上所述,"Azure邀请"可能是一个关于如何使用Azure平台构建、托管和管理HTML Web应用的教程、项目或讨论,涵盖了从基础服务到高级功能的多个方面。
Azure是微软提供的一个全面的云服务平台,它涵盖了计算、存储、数据库、网络、分析、人工智能等众多服务,为企业和开发者提供了构建、部署和管理应用程序的能力。Azure在全球范围内拥有多个数据中心,确保了数据的...
基于MongoDB,Azure Blob存储或Google云端硬盘托管自己的映像服务器 入门 支持平台 AWS S3存储 Google云端硬碟 Azure Blob存储 MongoDB GridFS 支持的格式 图片/ jpeg 图片/ png 图片/ Webp :laptop_computer: ...
在本项目"react-azure-static-web-app"中,我们看到一个使用React框架开发的静态Web应用程序,该应用被设计为与Azure服务集成,特别是Azure静态Web应用程序服务。这是一个云托管解决方案,可以快速部署和管理静态...
标题中的“azure-static-webapp”指的是Azure静态Web应用服务,这是微软Azure云平台提供的一项服务,用于托管静态内容和无服务器的JavaScript后端。这项服务特别适合构建现代Web应用程序,如单页应用(SPA)、静态...
3. **数据库服务**:数据库服务通常包括托管的数据库解决方案,例如关系型数据库(如Amazon RDS)、非关系型数据库(如MongoDB Atlas)以及数据仓库(如Amazon Redshift)。这些服务简化了数据库的管理和维护,允许...
4. 部署和托管:IIS(Internet Information Services)是常见的ASP.NET应用服务器,但也可以选择Azure App Service等云服务进行托管。 5. 测试和调试:Visual Studio等开发工具提供了强大的测试和调试功能,帮助...