nginx - 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。
我“认为”这可能是由于 nginx 和什么是“静态”图像。
如何在云 CDN 中正确缓存这些图像?
更新:
缓存似乎存在,它太短了,我似乎无法扩展它。CDN 说它只在 50 分钟的笼子政策下缓存这些图像,但我已将 htaccess 设置为 1 年。
解决方案
只是添加到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 标头添加到它从缓存中提供的响应中。此处,标头指示响应已通过使用两秒前创建的缓存条目从缓存中成功提供。
推荐阅读
- python - 如何更新 postgresql 存储过程中的多个查询?
- excel - CountIF / 删除重复值
- javascript - 使用 createDrawerNavigator 时如何使 Header 也滑动?
- c++ - 目标提升::
已经有一个导入的位置 + 链接错误 - regex - 如何在正则表达式中使用变量?
- c# - 如何将任何格式的字符串转换为 DateTime
- powershell - 如何在 Jenkinsfile 的 powershell 中创建环境变量?
- spring - Spring 嵌入式 Mongo DB
- javascript - 未捕获的类型错误:无法读取 SVGPathElement 处未定义的属性“setAttribute”
- css - 在@font-face 中添加行高