我是 CDN 的新手,正在尝试 CloudFront。我已经设置了一切,一切似乎都运行良好。我可以在页面上创建静态图像并通过我的 CloudFront 分配访问它。我使用的是自定义来源(即不是 s3 存储桶)。
不过,我担心从性能的角度来看,我的情况可能会更糟。我有一个测试页面,它在使用和不使用 CDN 的情况下加载相同的 20 个左右的图像。查看 Firebug 中的网络面板,我第一次加载此页面时,直接从源服务器加载的图像的速度要快得多。在后续页面加载时,CDN 的好处变得显而易见——在 3-5 次刷新后,CDN 的表现比原始服务器好。
所以我可以看到,在我们网站上一个一直被点击的热门页面上,这将是一个好处。我应该期待一个好处,因为我在西雅图(在亚马逊附近)并且我的服务器在加州。
问题是,如果我离开页面几分钟然后重新加载,事情又会回到原点,CloudFront 比原始服务器更糟糕。这是预期的吗?东西会这么快地从 CDN“缓存”中掉出来吗?
我的设置中是否有可能影响性能?或者 CDN 只会对当前平均每隔几秒访问一次的内容产生净正面影响?
(从 AWS 论坛交叉发布,因为我一直被 SO 的周转时间宠坏了)
更新:
如果您对 CloudFront 性能有疑问,下面有两个很好的答案值得一看。我最近发现没有提到我的具体问题的一种解释。作为疏忽,我在 5 分钟时离开了 TTL。由于我也在使用自定义源,因此需要额外往返权威名称服务器以将其解析为实际的 Amazon CloudFront 域。现在 TTL 设置又回到了 12 小时,长负载似乎很少发生。
我有一个使用 ASP.NET 开发的网站,我的数据库是 MySQL。目前它托管在美国服务器上。但是当我尝试在印度附近访问它时,动态内容加载速度太慢。这是可以接受的,因为请求必须到世界的另一端。在美国它真的很快。我已经将这个站点与 cloudflare CDN 连接起来。但是 CDN 对静态内容很有用。我的每一页几乎都有动态内容。
所以我想扩展这个网站。因此,如果请求来自美国,我想处理来自美国服务器的请求,如果请求来自亚洲,我希望它从亚洲服务器处理。但请记住,无论将它们重定向到何处,两台服务器上的内容都应该相同。(两台服务器应该是同步的)
那么如何实现这种架构呢?
谷歌、脸书、雅虎是如何做到这一点的?他们如何为全球服务?我认为他们在各大洲都有数据中心。它们如何相互同步?
有许多 CDN(内容交付网络)主要用于托管静态内容。它们是如何工作的?他们如何处理http请求?
亚马逊最近添加了使用任何服务器作为 Cloudfront 源服务器的功能,消除了最初的仅限 S3 的限制。
我的问题是 - 我该如何设置?AWS web-gui 似乎只支持 S3 存储桶(仍然),并且 ec2 命令行工具似乎没有任何用于注册 Cloudfront 发行版的东西。
任何想法非常感谢!
谢谢,克里斯。
我有 Cloudflare 提供的静态内容。Cloudflare 指向 Amazon S3 以获取静态内容并通过 CNAME (cdn.mydomain.com) 为其提供服务。存储桶设置正确并且一切正常,直到周五我开始在浏览器中收到请求超时。我确认内容仍然可以通过 S3 访问,并使用 Cloudflare 开了一张票。Cloudflare 报告说,“亚马逊确实出现了一些可能阻止来自我们 IP 的请求”,并且他们在日志中看到了以下消息:
upstream timed out (110: Connection timed out) while reading response header from upstream cdn.mydomain.com
upstream prematurely closed connection while reading response header from upstream cdn.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这是我的 CORS 文件中已有的内容。
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
Run Code Online (Sandbox Code Playgroud)
我应该在 AllowedHeader 中放一个 * 吗?我是否需要明确命名 Cloudflare IP 地址?我错过了什么来避免阻塞?
在边界防火墙中戳一个防火墙漏洞以允许 Windows 更新的最佳方法是什么?
据我所知,Windows 更新站点托管在可能每 30 秒更改一次 IP 地址的内容分发网络上。
如果我用站点的静态分配“毒害”我们的校园 DNS,最终我将指向实际上不再托管内容的站点。
是否有任何托管更新内容的 IP 地址保证永远不会更改?
从更一般的意义上讲,人们如何配置防火墙以允许访问托管在 IP 不断变化的 CDN 上的资源?防火墙只是查看数据包,并不一定知道请求将要到达的 url(如果是 https),因此防火墙没有直接的方法来查看此数据包是否将发送到赛门铁克病毒定义更新站点当那个人正在观看世界杯直播时。
而且,在我的情况下,我没有能力在网络上的系统上强制执行特定配置。啊,在大学工作的乐趣......
我无法通过谷歌或价格表找到任何与成本相关的数字。这些服务的实际成本是多少(akamai、风头等)?有没有好的 CDN 评论/比较站点?
编辑:刚刚与 akamai 销售人员通电话 - 他们确定每个客户的价格。每 GB 成本基于您的平均预期每月带宽。希望我能在得到它们时发布更多详细信息。
我工作的中小型在线零售公司使用 Akamai 作为我们的静态图像 CDN,但我想知道它是否可能会造成伤害而不是帮助,如果它不是最理想的,我们应该怎么做。
我们每月获得大约 300 万次浏览量和 40 万独立访问者。我们有 100k+ 不同的静态图像出现在我们的各种网页中(数千种产品中的每一种都有几个不同的图像等)。
问题是 Akamai 的服务器从源服务器(我们自己托管)请求文件,以处理大约 40% 的浏览器请求。这意味着很多(在我看来)我们的客户没有必要等待:40% 的请求必须在返回给客户之前在 Akamai 和我们的原点之间进行往返。
服务器 TTL 不是问题;它们都设置为 365 天。所以它似乎要么
所以我开始怀疑是否可以通过服务器较少的 CDN 为我们提供更好的服务,我的想法是使用较少的 CDN 服务器,我们的更多图像将更频繁地缓存在每个服务器上,并且可能会在缓存中停留更长时间不被换出。另一方面,对于不靠近其中一台服务器的用户来说,更少的服务器可能意味着更多的延迟。
我们正在查看两个基于 Akamai 的选项,但(还)尚未启动:
所以我的问题是:
你们是否都认为将文件缓存在更少的服务器上会更好,但代价是某些用户的额外延迟;或者延迟是不是比原点往返更大的问题?
如果我们使用 NetStorage,有没有人知道往返 NetStorage“原点”通常需要多长时间?
我错过了什么吗?我还应该在这里考虑什么?
我们在 Azure CDN 上为 Azure 应用程序托管了一些内容 - 我们可以使用标准端点地址通过 https 很好地访问这些内容,但是为了“整洁”,我们的客户希望使用带有 https 的自定义域 - 这样我们就可以访问我们的资产来自https://cdn.app.com。Azure CDN 可以做到这一点吗?
CloudFlare 的基本 SSL 包为您的站点提供 SSL 加密,但仅限于您客户的浏览器和 SSL 终止的 CloudFlare 服务器之间。CloudFlare 和您自己的服务器之间的连接不通过 SSL 提供服务。
这有多安全?您不希望使用该系统发送哪些信息?有人窥探您的 CloudFare -> 服务器连接有多容易?
CloudFlare 还提供完整的 SSL 服务,允许您安装自己的证书,并加密整个路由,但价格是其 10 倍。
cdn ×10
cloudflare ×2
amazon-ec2 ×1
amazon-s3 ×1
asp.net ×1
azure ×1
cache ×1
cname-record ×1
firewall ×1
hosting ×1
http ×1
ip-blocking ×1
latency ×1
mysql ×1
ssl ×1
web-server ×1