【问题标题】:Caching all images on external site through Cloudflare通过 Cloudflare 缓存外部站点上的所有图像
【发布时间】:2019-10-23 06:15:12
【问题描述】:

这是我的情况:

我有一个在远程服务器上使用大量图像的 web 应用程序。我的 web 应用程序在 Cloudflare 后面,尽管托管图像的服务器不是......而且这个服务器可能非常慢。有时每张图片可能需要大约 5 秒的时间。

我想使用 Cloudflare 将请求代理到这个外部服务器,但也可以无限期地缓存它们,或者至少尽可能长地缓存它们。图像永远不会改变,所以我不介意它们有很长的缓存寿命。

这是我应该在工人中设置的东西吗?作为页面规则?或者只是不以这种方式使用 CLoudflare?

【问题讨论】:

    标签: caching cloudflare cloudflare-workers


    【解决方案1】:

    如果您无法更改原始服务器标头,您可以尝试在您的工作人员中执行 sn-p:

    fetch(event.request, { cf: { cacheTtl: 300 } })
    

    根据docs

    此选项强制 Cloudflare 缓存此请求的响应, 无论在响应中看到什么标头。这是 相当于设置了两条页面规则:“Edge Cache TTL”和“Cache 级别”(以“缓存所有内容”)。

    【讨论】:

      【解决方案2】:

      我认为您通常只希望图像上有一个很长的缓存标头。比如:

      Cache-Control: public; max-age=31536000
      

      【讨论】:

      • 问题是我无权访问提供图像的服务器。它在不同的域上,通过不同的 CDN ?
      猜你喜欢
      • 2014-01-14
      • 2011-03-26
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      相关资源
      最近更新 更多