CloudFront | 默认缓存键 | 通配符域名

0

【以下的问题经过翻译处理】 根据https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html,默认缓存键是CF 分配的名称,但是示例显示它是host header。

哪个是正确的?

我问这个问题是因为通配符域名(*.example.com)解析为CF 分配(CNAME),如果缓存键基于host header,它不会在不同的域之间缓存对象。(例如test.example.com和test2.example.com不会共享缓存的对象)

有没有办法克服这个问题?即我希望缓存键包括URI和实际的CF 分配名称,而不是host header。

谢谢, Roi

profile picture
专家
已提问 10 个月前24 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

我理解你读到的文档[1]中提到默认缓存键是CF分发名称,但实例显示其为host header,你对此有些困惑。但是请注意,实际上默认情况下缓存键并不包含host header。如果想包含host header,必须在“基于选择的请求标头缓存”中选择host header。文档中的引用是指,CloudFront默认域名默认包含在缓存键中,但不包含任何你自定义替代域名。

对于你的问题,除非将host header列入白名单,否则无论使用何种CNAME访问CloudFront内容,缓存键都将相同,因此给出的场景只会出现两个不同的缓存键。

希望这对你有所帮助。

[1] https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/understanding-the-cache-key.html

请注意,我非常重视您的反馈,如果您对此回复感到满意,请考虑点赞。

profile picture
专家
已回答 10 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则