具有多个来源的亚马逊云端分发是不是冲突?
Posted
技术标签:
【中文标题】具有多个来源的亚马逊云端分发是不是冲突?【英文标题】:Does an amazon cloudfront distribution with multiple origins conflict?具有多个来源的亚马逊云端分发是否冲突? 【发布时间】:2015-06-10 05:11:10 【问题描述】:我在 2 个网站上有 2 张不同的图片:
http://www.siteA.com/avatar.png http://www.siteB.com/avatar.png如果我创建具有 2 个来源的 Amazon Cloudfront 分发:www.siteA.com
和 www.siteB.com
,然后我调用 uniqueDistributionID.cloudfront.net/avatar.png
,那么将返回哪个 avatar.png
? siteA
中的那个还是siteB
中的那个?
为什么&为什么不呢?
试图了解 Cloudfront 发行版中潜在的冲突。
【问题讨论】:
【参考方案1】:不,CloudfFront 没有“冲突”的概念,因为当您有一个具有多个来源的分配时,您必须定义哪个路径匹配到哪个来源。
CloudFront 的路径模式匹配是确定性的。它使用第一个匹配,而不是最佳匹配。无论哪个模式首先匹配,都会被使用,即使该路径在源服务器上是死路。
当 CloudFront 收到最终用户请求时,会按照缓存行为在分配中列出的顺序将请求的路径与路径模式进行比较。第一个匹配项决定了对该请求应用哪种缓存行为。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern
更新
CloudFront 现在支持Origin Groups 的概念,它允许任何给定的缓存行为向一个源发送请求,然后 -- 如果您指定的错误类型之一(例如 404 或 503)由第一个来源,然后 CloudFront 将尝试从第二个来源获取内容。这可用于故障转移,但也可用于您希望 CloudFront 尝试一个源,然后尝试另一个源的情况。对于每个缓存未命中,按顺序尝试源组中的两个源。如果任一源返回可缓存的响应,则该响应将存储在缓存中。
【讨论】:
“当你有一个具有多个来源的分布时,你必须定义哪个路径匹配去哪个来源”——我在哪里定义这些路径? Cloudfront“来源”选项卡只有来源路径。不是 Cloudfront URL 的路径。 @PKHunter 路径匹配在 Cache Behaviors 中完成。缓存行为将路径模式与源相匹配,并且在处理请求时按照显示的顺序对它们进行评估。默认情况下存在一种缓存行为,它是匹配*
的“默认”行为。这个当然总是在评估列表中的最后一个。对于每个路径模式,您都会创建一个新行为。不要使用 origins 下的“origin path”设置,除非你在向源发送请求时需要prepend到请求路径——这种配置并不常见。
使用 Origin Groups 确实非常好用!我的 domain.com 具有多个来源和行为的 CloudFront 分配。我想使用一个源来服务一些***路由,并使用默认源来服务所有其他***路由(包括 404)。一个原始组让我可以做到这一点。以上是关于具有多个来源的亚马逊云端分发是不是冲突?的主要内容,如果未能解决你的问题,请参考以下文章