Cloudflare是否对第三方资源执行反向代理缓存?
Cloudflare对第三方资源的反向代理缓存逻辑
嘿,这个问题问得很实际!我来给你把Cloudflare的处理逻辑说清楚:
默认行为:不代理第三方资源
默认情况下,Cloudflare只会代理和缓存你自己添加到Cloudflare账户中的域名下的资源。回到你的例子:
- 你的网站
http://www.expensivehost.com是Cloudflare代理的,但http://www.cheaphost.com是完全独立的第三方域名,不在你的Cloudflare配置里。 - 用户访问你的网站时,浏览器看到
<a href="http://www.cheaphost.com/image123.jpg">这个链接后,会直接向cheaphost.com的服务器发起请求,完全绕开你的Cloudflare节点。
让Cloudflare处理第三方资源的两种方法
如果你想让Cloudflare帮你缓存或代理这个第三方图片,有两种可行的方案:
- 将第三方域名纳入你的Cloudflare账户:前提是你拥有
cheaphost.com的域名控制权,把它添加到你的Cloudflare账户并开启代理。但显然这种情况在你的例子里不太现实,因为那是第三方的主机。 - 用规则/Workers改写URL并代理:通过Cloudflare的Transform Rules或者Workers,把页面里的第三方资源URL替换成你自己域名下的路径(比如把
http://www.cheaphost.com/image123.jpg改成https://www.expensivehost.com/cdn/image123.jpg),然后配置Cloudflare在后台去拉取第三方的资源,再返回给用户。这种情况下,用户请求的是你域名下的路径,会经过Cloudflare的缓存和代理,相当于间接让Cloudflare处理了第三方资源。
额外说明
如果第三方的cheaphost.com本身就使用了Cloudflare,那用户请求图片时会走cheaphost自己的Cloudflare节点,但这和你的Cloudflare配置没有关系,是第三方自己的设置。
内容的提问来源于stack exchange,提问作者Christopher Hostage
相关产品推荐
相关产品推荐

