Amazon web services CloudFront整个站点交付和html中包含的URL

Amazon web services CloudFront整个站点交付和html中包含的URL,amazon-web-services,cdn,amazon-cloudfront,Amazon Web Services,Cdn,Amazon Cloudfront,这是一个可能适用于所有CDN的简单问题,但我无法在web或AWS站点()上找到答案。希望对于熟悉CDN或CloudFront的人来说,这是一个简单的答案,这可能有助于其他人理解这是如何工作的 如果我使用CloudFront进行整个站点交付,并设置一个源服务器(例如,源服务器是www.myexample.com),那么如果我在www.myexample.com/example1.html和example1.html上提供一个html文件(example1.html),则该文件将包含一个包含src甚

这是一个可能适用于所有CDN的简单问题,但我无法在web或AWS站点()上找到答案。希望对于熟悉CDN或CloudFront的人来说,这是一个简单的答案,这可能有助于其他人理解这是如何工作的


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

您应该将S3 bucket连接到CloudFront发行版,并在html代码本身中使用该链接。我可能错了,但我不知道CDN如何能够缓存这些链接,因为客户端浏览器本身根据从CDN下载的html代码请求这些资源

因此,在您的示例中,只有对myexample.com的请求才会通过CloudFront发行版,而不需要任何额外的源设置


编辑:请参阅@Skill M2关于为同一CloudFront发行版添加多个源站的评论

这是我的假设,但我在一些地方读到,这是不必要的,比如这里:(下面引用)和这里。这些地方并没有真正解释这是怎么回事,所以我希望能确定这是真是假。“虽然将整个站点设置为缓存似乎更容易(您不需要将HTML中的资源URL更改为CDN URL!),但有几个非常重要的注意事项需要考虑。”我从这句话中了解到的是,所有内部资源都“缓存”在CDN中,而不是来自外部来源的资源。好吧,这个答案大体上是正确的,唯一需要添加的是,您不需要另一个cloudfront发行版,可以使用相同的发行版,但可以设置多个源服务器(一个用于web服务器,一个用于s3 bucket),然后通过路径模式设置“行为”,以确定每个cdn请求使用哪个源服务器)。看见