我已经为应用程序负载均衡器后面的 aws ecs fargate 上托管的建议 api 设置了一个 api 网关。我已启用 api 网关阶段的缓存以及相应的 get 方法,并将 TTL 设置为 1 小时。 当我多次访问 api 端点并检查响应标头时,我得到
缓存控制:无缓存,私有 x-cache:来自cloudfront的小姐
由于 api 网关在底层使用 cloudfront 进行缓存,我很困惑为什么总是存在缓存缺失。
由于此 API 网关使用代理集成,因此我无法配置集成响应。所以我尝试在方法响应中发送缓存控制标头值,但仍然存在同样的问题。所以我有点被困在这里。 api 正在工作,除了业务之外的所有内容对于响应时间都至关重要,因此需要解决这个问题。 任何有助于理解缓存未命中的帮助都会很棒。 API网关使用cloudfront缓存还是仅使用cloudfront边缘位置来路由请求?
检查后端标头:
验证您的后端服务返回的 Cache-Control 标头。如果它们包含无缓存或类似内容,CloudFront 将不会缓存响应。
API网关方法响应标头:
即使在代理集成中,您也可以在方法响应中映射自定义标头。确保您明确设置缓存友好的标头,例如:
缓存控制:公共,最大年龄=3600