通过Cloudflare在外部站点上缓存所有图像

时间:2019-06-07 18:12:56

标签: caching cloudflare cloudflare-workers

这是我的情况:

我有一个在远程服务器上使用大量图像的webapp。我的Web应用程序位于Cloudflare后面,尽管托管图像的服务器不是。.并且此服务器可能非常慢。每张图片有时可能需要5秒钟。

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

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

2 个答案:

答案 0 :(得分:0)

我认为您通常只希望图像上的缓存头很长。像这样:

Cache-Control: public; max-age=31536000

答案 1 :(得分:0)

如果您无法更改原始服务器标头,则可以尝试在工作线程中遵循以下代码段:

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

根据docs

  

此选项强制Cloudflare缓存此请求的响应,   不管在响应中看到什么标题。这是   等效于设置两个页面规则:“边缘缓存TTL”和“缓存”   级别”(以“缓存所有内容”)。