了解 Cloudflare 的 CDN

了解 Cloudflare 内容交付网络 (CDN)、其运作方式、其默认缓存内容以及如何自定义缓存。


概述

Cloudflare 的内容分发网络(CDN)是一组分布在不同地理位置的服务器,可确保快速交付 Internet 内容,包括 HTML 页面、JavaScript 文件、样式表和图像。在 Cloudflare 上缓存静态资源可减少服务器负载和带宽,不会因带宽峰值而产生额外费用。

Cloudflare 不需要额外的 CDN 子域或主机名,并且您无需更改 URL。

出于多个原因,您应该为您的网站使用 Cloudflare 的 CDN

用户体验: 没有 Cloudflare 的 CDN,距离您的源 Web 服务器较远的访问者会体验到页面加载速度变慢。Cloudflare 的 Anycast 网络使内容在地理上更接近您的访问者,从而减少页面负载和延迟。

流量峰值: 由于重大新闻发布或在线事件,突然涌入您的网站的流量可能会使源 Web 服务器超载。Cloudflare 的 CDN 可提供您缓存的内容,以减轻源 Web 服务器的负载。

DDoS 防护: 分布式拒绝服务(DDoS)攻击通过用流量淹没其基础架构来中断网站服务。Cloudflare 的 CDN 的网络容量为史上最大 DDoS 攻击的 15 倍,并且可以处理现代 DDoS 以确保您的网站正常运行。

使用 Cloudflare 高速缓存内容

Cloudflare 根据以下因素来缓存静态内容:

  • 您的访问者来自哪里,
  • 您的访问者使用哪个 Cloudflare 数据中心,以及
  • 访问者向特定数据中心请求资源的频率如何。

Cloudflare 仅缓存为请求服务的 Cloudflare 数据中心内的资源,不会缓存:

  • 站外或第三方资源(Facebook、Flickr 等)。
  • 托管在未代理的(灰色云) DNS 记录中的内容,或者
  • 从源 Web 服务器返回的带有 no-cacheprivatemax-age=0 or 过时的 Expires 标头的内容。

Cloudflare 的 CDN 提供几种缓存自定义选项:

对于 Free、Pro 和 Business 客户,Cloudflare 的 CDN 可缓存的文件大小上限为 512MB,对于 Enterprise 客户为 5GB。Enterprise 客户可以联系其 Cloudflare 帐户团队,请求缓存更大的文件。

Cloudflare 仅基于文件扩展名进行缓存,不按照 MIME 类型缓存。Cloudflare CDN 自动缓存包含某些文件扩展名的文件,默认不缓存 HTML:

bmp

ejs

jpeg

pdf

ps

ttf

class

eot

jpg

pict

svg

webp

css

eps

js

pls

svgz

woff

csv

gif

mid

png

swf

woff2

doc

ico

midi

ppt

tif

xls

docx

jar

otf

pptx

tiff

xlsx

通过将 Cloudflare Page Rule 创建至 Cache Everything 来缓存其他内容。

如果没有 max-age=0no-cacheprivate 或过时的 Expires 标头,且 URL 可缓存,Cloudflare 同时缓存 301 和 302 重定向。301 重定向缓存几个小时,302 重定向缓存少于 20 分钟。

Cloudflare 高速缓存响应

CF-Cache-Status 标头输出显示资源是否缓存:

HIT

在 Cloudflare 的缓存中找到资源。

MISS

未在 Cloudflare 缓存中找到资源,从源 Web 服务器获取。

EXPIRED

在 Cloudflare 缓存中找到资源但已过期,从源 Web 服务器获取。

STALE

资源通过缓存提供,但已过期。Cloudflare 无法联系源站以检索更新后的资源。

BYPASS

源站通过设置为 no-cacheprivatemax-age=0Cache-Control 标头指示源站绕过缓存。开启 Origin Cache-Control 时返回 BYPASS

REVALIDATED

资源通过缓存提供,但已过时。已通过 If-Modified-Since 标头或 If-None-Match 标头重新验证资源。

UPDATING

资源通过缓存提供,但已过期。资源目前正在由源 Web 服务器进行更新。UPDATING 通常仅针对十分常用的缓存资源显示。

缺少 CF-Cache-Status 标头

如果缺少 CF-Cache-Status 标头,但您看到其他 Cloudflare 标头(如“CF-RAY”),这表明资源未缓存。使用 Page Rule 实施自定义缓存选项。

使用 Redbot webpagetest.org 等服务调查 CF-Cache-Status 标头返回的缓存响应。  此外,还可以使用 Chrome's Dr.Flare 插件等视觉工具调查。

相关资源

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持