我在两个网站上有两个不同的图像:
- http://www.siteA.com/avatar.png
- http://www.siteB.com/avatar.png
如果我创建了一个有两个来源的AmazonCloudfront分发版:www.siteA.com
和www.siteB.com
,然后我调用uniqueDistributionID.cloudfront.net/avatar.png
,那么会返回哪个avatar.png
?siteA
中的那个还是siteB
中的那个?
为什么&为什么不呢?
试图了解Cloudfront发行版中潜在的冲突。
不,CloudfFront没有"冲突"的概念,因为当您有一个具有多个来源的分发时,您必须定义哪个路径匹配到哪个来源。
CloudFront的路径模式匹配是确定性的。它使用第一匹配,而不是最佳匹配。首先匹配的模式就是将要使用的模式,即使该路径在源服务器上是死胡同。
当CloudFront接收到最终用户请求时,会按照分发中列出缓存行为的顺序,将请求的路径与路径模式进行比较。第一个匹配确定哪个缓存行为应用于该请求。
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern
更新
CloudFront现在支持Origin Groups的概念,它允许任何给定的Cache Behavior向一个Origin发送请求,然后——如果您指定的错误类型之一(例如404或503)由第一个Origin返回,那么CloudFront将尝试从第二个Origin获取内容。这可以用于故障切换,但也可以用于希望CloudFront先尝试一个源,然后再尝试另一个源的情况。对于每个缓存未命中,将按顺序尝试源组中的两个源。如果其中一个源返回可缓存响应,则该响应将存储在缓存中。