我已经对 Azure 的 CDN 进行了相当多的实验,并且我认为在使用 Web 角色成功设置后我是安全的。
为什么是网络角色?
好吧,我想要压缩和缓存标头的好处,而我使用普通 blob 方式未能成功获得这些好处。作为额外的奖励;区分大小写的约束也被消除了。
选择 CDN 服务就够了;虽然之前的所有内容都来自同一个域,但我现在或多或少地提供来自 cdn.cuemon.net 的所有“静态”内容。从理论上讲,这应该会提高性能,因为与仅一个域相比,并行浏览器可以将内容收集传播到“多个”域上。
不幸的是,这导致性能下降,我认为这与提供内容之前的滚刀数量有关(使用 tracert 命令):
C:\Windows\system32>tracert -d cdn.cuemon.net
Tracing route to az162766.vo.msecnd.net [94.245.68.160]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 192.168.1.1
2 21 ms 21 ms 21 ms 87.59.99.217
3 30 ms 30 ms 31 ms 62.95.54.124
4 30 ms 29 ms 29 ms 194.68.128.181
5 30 ms 30 ms 30 ms 207.46.42.44
6 83 ms 61 ms 59 ms 207.46.42.7
7 65 ms 65 ms 64 ms 207.46.42.13
8 65 ms 67 ms 74 ms 213.199.152.186
9 65 ms 65 ms 64 ms 94.245.68.160
C:\Windows\system32>tracert cdn.cuemon.net
Tracing route to az162766.vo.msecnd.net [94.245.68.160]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 192.168.1.1
2 21 ms 22 ms 20 ms ge-1-1-0-1104.hlgnqu1.dk.ip.tdc.net [87.59.99.217]
3 29 ms 30 ms 30 ms ae1.tg4-peer1.sto.se.ip.tdc.net [62.95.54.124]
4 30 ms 30 ms 29 ms netnod-ix-ge-b-sth-1500.microsoft.com [194.68.128.181]
5 45 ms 45 ms 46 ms ge-3-0-0-0.ams-64cb-1a.ntwk.msn.net [207.46.42.10]
6 87 ms 59 ms 59 ms xe-3-2-0-0.fra-96cbe-1a.ntwk.msn.net [207.46.42.50]
7 68 ms 65 ms 65 ms xe-0-1-0-0.zrh-96cbe-1b.ntwk.msn.net [207.46.42.13]
8 65 ms 70 ms 74 ms 10gigabitethernet5-1.zrh-xmx-edgcom-1b.ntwk.msn.net [213.199.152.186]
9 65 ms 65 ms 65 ms cds29.zrh9.msecn.net [94.245.68.160]
从上面的trace route可以看出,所有外部内容都延迟了相当长的一段时间。值得注意的是,Azure服务设置在北欧,我定居在丹麦,为什么这条trace route有点..hmm..过头了?
另一个问题可能是 web-role 是两个额外的小实例;我还没有时间尝试使用两个小型实例,但我知道 Microsoft 将额外的小型实例限制为 5Mb/s WAN,而小型及以上的实例则为 100Mb/s。
我只是不确定这是否也适用于 CDN。
无论如何-非常感谢任何帮助和/或解释。
让我声明,我对 Azure 平台非常满意——我只是对上述问题感到好奇。
更新
不带 -d 选项的新 tracert。
受到user728584的启发,我研究并找到了这篇文章,http://blogs.msdn.com/b/scicoria/archive/2011/03/11/taking-advantage-of-windows-azure-cdn-and-dynamic- pages-in-asp-net-caching-content-from-hosted-services.aspx,我将进一步研究公共缓存控制和 CDN。
这并不能解释跳数过多的现象,但我希望熟练的网络专业人员可以帮助解决这个问题。
请放心,我会根据我的调查结果及时通知您。