繁体   English   中英

要从AWS CloudFront删除缓存控制标头吗?

[英]Remove Cache-Control headers from AWS CloudFront?

我正在从我的原始服务器设置Cache-Control:s-maxage = 3600。 由此,我指示我的AWS CloudFront将内容缓存3600秒。 我在白名单中列出了一些cookie,并根据CloudFront中的cookie值设置了缓存。 直到客户端和我的CloudFront之间没有代理为止,此设置才能正常工作。

如果有代理,它还会由于s-maxage标头而缓存版本,而不考虑cookie值。 因此,我的最终用户看到了与我的网页无关的版本。

有什么办法可以克服这个问题? 还是我需要编写Lambda @ edge函数以在“查看器响应”中删除此Cache-Control:s-maxage = 3600?

在查看器响应处创建一个Lamda @ Edge函数,并重置Cache-Control标头。

exports.handler = (event, context, callback) => {

    /* Get response */
    const response = event.Records[0].cf.response;       

    response.headers['cache-control'] = [{
        key: 'cache-control', value: 'no-cache, no-store, must-revalidate'
    }];

    callback(null, response);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM