精打细算视频:把我网站的图片移到Azure CDN上(并用自定义的域)


[原文发表地址]: Penny Pinching Video: Moving my Website's Images to the Azure CDN (and using a custom domain)

[原文发表时间]: 2013-04-22

上周我把jQuery 懒加载加到我的播客网站时,谈到了使用云服务要精打细算。然后,我把我的网站移到同一个数据中心作为我的SQL 数据库(事实上,它们应该是一直在一起的!)。现在,我把我的所有的展示图片也移到Azure CDN。现在约有370个展示图片,如果有人访问档案页,滚动在页面周围的约有8M的图片。

 

另外,我有一个非常国际化的团体听CDN Metrics are looking great我的播客,因此,通过把图片移到CDN,我能得到负载均衡和边缘缓存。如亚洲人得到的图片将从亚洲数据中心送达,等等。

 

 

现在,为了明确起见,Azure带宽很便宜,100GB只要约$11,不过我也想学习怎么用Blog Storage CDN。我只用过它来存储虚拟机,并让它对我隐藏。Azure CDN的带宽价格差不多是一样的,但是我得到了异地备援。还要记住“入口”,那就是,传入流量是免费的。在你估计带宽成本时,只要关注传出流量。

 

 

 

 

我还想到如果有一个自定义的Hanselminutes子域会比较酷,因此我希望图片由http://images.hanselminutes.com送达,因为它酷。另外,它意味着将来我可以切换到CDNs,同时不改变我的网址。

 

 

下面是我所用的步骤

 

· 我创建一个叫‘hanselminutescdn’的新存储帐户,然后创建一个叫‘images’的容器。

· 到‘Configure’面板并设置images.hanselminutes.com CNAME指向新的存储账户。到我的DNS供应商(DNSimple.com),从images.hanselman.com 中添加一个CName 指向hanselminutescdn.blob.core.windows.net,然后依照Azure便携式指令介绍来验证域。这包括添加另一个验证专用的CNAME。

A custom Azure CNAME for my Domain

 

 

·我下载了用于.NETAzure SDK并用Visual Studio上传图片。

image

 

·在视频之后,我获得了用于Windows AzureCloudBerry Explorer并用他们的“sync”选项来保持我本地的显示图片的文件夹和Azure上的同步。非常的顺。他们的应用程序还让我轻松地在我的图片上设置HTTP Headers,如果我想这样做话。我可能要为Pro版本付钱。

Cloud Berry Explorer

 

·我在我的HTML里把我的路径改成images.hanselminutes.com而不仅仅是网站域的/images

·我发现CDNs是大小写敏感的,于是我运行了这个PowerShell 脚步把我所有的图片文件都改成小写。

dir | Rename-Item { $_.Name.ToLowerInvariant() }

· 我清理了那些图片文件并重新上传了以新的小写字母命名的文件。

· 好极了。

 

是的,我还没有设置到最后一步,不过快了很快。Smile

 

重要更新:评论家Nate Jackson指出,虽然我设置了对二进制数据块存储的访问,但是我还没有真正启动CDN本身的Edge Caching功能。因此,貌似我要访问老的管理门户网站(这就解释了为什么我完全忽略了它。它不直观!)。

 

从你的帐户名处下拉可以进入到老门户网站:

 

Switching over to the Previous Portal

 

 

 

Azure文档站点上有说明说我需要创建一个“CDN端点”把CDN和我现在的公开二进制数据块存储容器关联起来。

 

我访问了Hosted Accounts + CDN按钮,然后按新建端点。

 

Creating a CDN Endpoint

 

 

URL模板是这样的:

http://<CDNNamespace>.vo.msecnd.net/<myPublicContainer>/<BlobName>

接着在点击新建端点并启动CDN后,老门户网站告诉我,我的CDN端点的名字是“az415467”:

 

Making a new CDN endpoint I'm given a unique URL

 

 

根据所给的 URL模板,我的容器的URL是:

 

http://az415467.vo.msecnd.net/images/255.jpg

然后(如果你愿意)点击Add Custom Domain

 

Associating my custom domain with my new CDN endpoint

 

 

然后把域指向CDN,而不是公开的二进制数据块存储:

 

Pointing my custom domain to the CDN

 

 

此时,老的门户网站看起来像这样:

 

Now my blob is associated with my custom domain name

 

 

并且我在访问的时候能确认它是工作的

 

http://az415467.vo.msecnd.net/images/255.jpg

还有http://images.hanselminutes.com/images/255.jpg

 

所有这样的想法是有一般存储,有公开的二进制数据块存储(这就是我所做的),它支持异地备援,然后还有正式的地理负载均衡的Content Delivery Network,不过我配置失败了!

CDN -> pulls from -> Public Blob Endpoint -> hosted in -> Your Storage Container itself

我很快会更新YouTube视频。非常感谢Nate Jackson指出我的疏忽这让我受益良多!

 

相关联接:

 

 

 

Comments (0)

Skip to main content