【问题标题】:CloudFront Whole Site Delivery and urls contained within htmlCloudFront 整个站点交付和 html 中包含的 url
【发布时间】:2014-09-02 02:08:14
【问题描述】:

这是一个可能适用于所有 CDN 的简单问题,但我无法在 Web 或 AWS 网站 (http://aws.amazon.com/cloudfront/) 上找到答案。希望这对于熟悉 CDN 或 CloudFront 的人来说是一个简单的答案,这可能有助于其他人了解其工作原理。

如果我要使用 CloudFront 进行整个站点交付并设置源服务器(例如,源是 www.myexample.com),那么如果我有一个在 www.myexample.com/ 上提供的 html 文件 (example1.html) example1.html 和 example1.html 将包含包含带有 src http://www.anothersite.com/anotherExample.jpg 甚至 S3 存储桶源的 img 标签的元素,那么这个来自另一个源的 jpg 是否也会缓存在 cdn 中?

【问题讨论】:

    标签: amazon-web-services cdn amazon-cloudfront


    【解决方案1】:

    您应该将 S3 存储桶连接到 CloudFront 分配并在 html 代码本身中使用该链接。我可能错了,但我看不出 CDN 是如何缓存这些链接的,因为客户端浏览器本身会根据从 CDN 下载的 html 代码请求这些资源。

    因此,在您的示例中,只有对 myexample.com 的请求会通过您的 CloudFront 分配,而无需任何其他源设置。

    编辑:请参阅@Skill M2 关于为同一 CloudFront 分配添加多个来源的评论

    【讨论】:

    • 这是我的假设,但我在一些地方读到这不是必需的,例如这里:fideloper.com/cloudfront-full-site-delivery(以下引用)和这里blogs.gartner.com/lydia_leong/2012/05/14/…。这些地方并没有真正解释这是如何工作的,所以我希望确定这是对还是错。 “虽然将整个网站设置为缓存似乎更容易(您无需将 HTML 中的资产 URL 更改为 CDN URL!),但需要考虑一些非常重要的因素。”
    • 我从那句话中了解到,所有内部资产都“缓存”在 CDN 中,而不是来自外部来源的资产。
    • 好的,所以这个答案大体上是正确的,唯一要补充的是您不需要另一个云端分发,可以使用相同的分发但设置多个源服务器(一个用于Web 服务器,一个用于 s3 存储桶),然后按路径模式设置“行为”,以确定对 CDN 的每个请求使用哪个源服务器)。见docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
    猜你喜欢
    • 2022-01-05
    • 2015-12-03
    • 1970-01-01
    • 2011-08-19
    • 2021-01-09
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多