首页 > 解决方案 > Google CDN 不缓存图像 - NGINX 问题或 CDN 设置?

问题描述

运行 Google Cloud CDN 的站点 - 根据众多测试,不会缓存 webp 图像 - 可能是所有图像。

https://gtmetrix.com/reports/mydoginsurance.com.au/TpxI5hxs/ 19 个不使用 CDN 的资源:

最初我使用“缓存静态内容”的 Cloud CDN 配置。但将此升级为“使用基于缓存控制标头的原始设置当前缓存设置:

我仍然看到图像,尤其是 Webp 没有被 CDN 缓存。我还更新了 .htaccess 文件以增加 webp 的 TTL。

Htaccess 图像 TTL

我“认为”这可能是由于 nginx 和什么是“静态”图像。

如何在云 CDN 中正确缓存这些图像?

更新:

缓存似乎存在,它太短了,我似乎无法扩展它。CDN 说它只在 50 分钟的笼子政策下缓存这些图像,但我已将 htaccess 设置为 1 年。

图像缓存说它只设置为 50 分钟

标签: nginxcachingcdngoogle-cloud-cdn

解决方案


只是添加到elving的答案 - 报告是错误的 -您的网站也在使用 CDN 图像

我已经阅读了有关 GCP 的 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, 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
age: 223
cache-control: max-age=86400,public
alt-svc: clear

倒数第三行age: 223表示此响应是从 223 秒前创建的缓存中提供的

此示例中的最后一个响应包含一个 Age 标头。Cloud CDN 将 Age 标头添加到它从缓存中提供的响应中。此处,标头指示响应已通过使用两秒前创建的缓存条目从缓存中成功提供。


推荐阅读