《Windows Azure Platform 系列文章目录》
本文介绍的是国外的Azure Global
如果你使用的是国内由世纪互联运维的Azure China,请参考这篇文章:
Azure China (9) 在Azure China配置CDN服务
本节我将介绍如何在Windows Azure平台下使用CDN。
Windows Azure平台提供了Blob Service和Hosted Serive两种CDN服务。我这里简单介绍Blob Service的内容。
请参考《Windows Azure Platform (十四)Windows Azure Storage Service存储服务之Blob详解(上)》
和《Windows Azure Platform (十五)Windows Azure Storage Service存储服务之Blob详解(下)》的例子,在Windows Azure Blob Storage下上传一张图片。
您也可以使用Azure Storage Explorer这个工具,来上传您需要的图片。
我上传到Azure Storage的图片URL是这样的:http://threestone.blob.core.windows.net/gallery/WindowsAzure.png
其中threestone是我的存储账户(Azure Storage Account)。对此内容不熟悉的网友可以看我之前几章的内容。
上传成功的图片预览如下:
接下来我要做的是,让所有存在Azure Storage账户threestone下的内容,开启CDN。
我们登陆到Windows Azure Management Portal里,选择"托管服务、存储账户和CDN"-->选择"CDN",然后选中threestone这个存储账户,选择"新建终结点"。
在弹出的"新建CDN终结点"里,最下面的勾选框,选择启用CDN、HTTPS、查询字符串(注:截图有点问题,抱歉)。最后点击"确定"。
Windows Azure会提示您,启动CDN可能需要60分钟。不过根据笔者观察 ,只需要差不多20分钟左右。
关闭"启用CDN"窗口之后,你会在Storage下发现CDN终结点已经创建。
CDN的地址是az271846.vo.msecnd.net
其中CDN URL为az271846.vo.msecnd.net。
我原来使用Azure Storage保存图片的URL是http://threestone.blob.core.windows.net/gallery/WindowsAzure.png
开启CDN之后,地址就变成http://az271846.vo.msecnd.net/gallery/WindowsAzure.png
这样Blob Service里的所有Blob内容都会被CDN加速。
用户首次访问这个图片的CDN URL的流程如下:
- 当用户打开这个网页的时候,客户端首先向距离用户最近的CDN服务器请求这个资源。
- 如果CDN服务器上海没有这个文件的副本,则通过配置信息从对应的Blob Service中请求这个资源。本例中,向http://az271846.vo.msecnd.net/gallery/WindowsAzure.png这个地址请求资源。
- Blob Service得到这个Blob资源
- Blob Service会首先把这个图片复制到CDN服务器
- 图片将会通过CDN服务器返回给用户
如果用户再次访问这个页面的时候,由于这时候CDN中已经有这个图片的副本了,所以将会直接从CDN服务器返回而无需访问Blob Service。
随着更多的用户访问,大部分情况下这个图片已经缓存在CDN中了,因此几乎不会再需要向Blob Service请求,这样就提高了网站的执行性能。
注意:只有通过CDN URL进行访问的时候才会使用CDN功能。如果用户直接访问的是Blob Service的URL,那么即使CDN服务器中已经缓存了这个资源,用户还是会直接从Blob Service获取这个资源。
OK,距离我们创建CDN Endpoint差不多20分钟的时间了。让我们看一下CDN URL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构