如何解决Google CDN 不缓存图像 - NGINX 问题或 CDN 设置?
运行 Google Cloud CDN 的站点 - 根据众多测试,不是缓存 webp 图像 - 可能是所有图像。
https://gtmetrix.com/reports/mydoginsurance.com.au/TpxI5hxs/ 19 resources not using CDN:
最初我使用“缓存静态内容”的 Cloud CDN 配置。 但将其升级为“使用基于缓存控制标头的源设置” Current Cache Settings:
我仍然看到图像,尤其是 webp 没有被 CDN 缓存。 我还更新了 .htaccess 文件以增加 webp 的 TTL。
我“认为”这可能是由于 nginx 和什么是“静态”图像。
如何在云 CDN 中正确缓存这些图像?
更新:
缓存似乎存在,只是太短了,我似乎无法扩展它。 CDN 说它只在 50 分钟的笼子策略下缓存这些图像,但我已将 htaccess 设置为 1 年。
image cache is saying its only set to 50min
解决方法
那个 GTmetrix 报告完全是错误的。他们显然没有正确检测到 Cloud CDN 的使用。我看到来自 Cloud CDN 的图像缓存命中,例如 /images/banner.webp。
https://cloud.google.com/cdn/docs/troubleshooting-steps#responses-not-cached 中提供了有关解决缓存未命中问题的信息,您可以使用这些信息进行仔细检查。
,只是添加到 elving 的回答中 - 报告是错误的 - 您的网站也在使用 CDN 来处理图像。
我已经休假了官方 documentation on troubleshooting GCP's CDN。
只需运行 curl -s -D - -o /dev/null https://mydoginsurance.com.au/images/banner.webp
,你应该得到:
HTTP/2 200
server: nginx
date: Thu,25 Feb 2021 12:26:01 GMT
content-type: image/webp
content-length: 130564
last-modified: Fri,16 Oct 2020 10:12:50 GMT
etag: "5f897222-1fe04"
x-powered-by: PleskLin
accept-ranges: bytes
via: 1.1 google
cache-control: max-age=86400,public
alt-svc: clear
几分钟后我再次运行它时:
HTTP/2 200
server: nginx
date: Thu,16 Oct 2020 10:12:50 GMT
etag: "5f897222-1fe04"
x-powered-by: PleskLin
accept-ranges: bytes
via: 1.1 google
age: 223
cache-control: max-age=86400,public
alt-svc: clear
倒数第三行是 age: 223
,表示这个响应是从 223 秒前创建的缓存中提供的;
此示例中的最后一个响应包含一个 Age 标头。 Cloud CDN 将 Age 标头添加到它从缓存提供的响应中。此处,标头表明通过使用两秒前创建的缓存条目成功地从缓存中提供了响应。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。