使用 Compression Rules,可根据文件扩展名和内容类型,自定义从 Cloudflare 全球网络到网站访客的响应所应用的压缩。Compression Rules 由 Ruleset Engine 提供支持。
Cloudflare 默认会压缩部分响应,具体取决于内容类型。通过 Compression Rules,你可以自定义默认行为,包括为特定文件类型定义首选压缩算法。
当压缩规则匹配并列出多种压缩算法(例如 gzip 和 Brotli)时,Cloudflare 会从你的列表中选择访客浏览器支持的第一种算法。Cloudflare 根据 accept-encoding HTTP 请求头判断浏览器支持情况,浏览器会自动发送该标头以表明其可解压的压缩格式。如果多个压缩规则匹配同一请求,则以最后一个匹配的规则为准。
Cloudflare 为常见用例提供规则模板。
-
在 Cloudflare 仪表板中,转到 Rules 概览页面。
Go to Overview ↗ -
选择 Templates(模板),然后选择一个可用模板。
你也可以参阅开发者文档中的 Examples gallery。
也可以按照以下页面中的说明开始使用:
Compression Rules 在所有 Cloudflare 套餐中均可用。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | Yes | Yes | Yes | Yes |
Number of rules | 10 | 25 | 50 | 300 |
以下字段常用于压缩规则的表达式中:
| Expression Builder 中的字段 | 字段名称 |
|---|---|
| Media Type | http.response.content_type.media_type |
| File extension | http.request.uri.path.extension |
| N/A | raw.http.request.uri.path.extension |
-
如果压缩规则匹配,但访客的浏览器不支持规则中配置的任何压缩算法(基于
accept-encoding请求头),则响应将不会被压缩。 -
如果压缩规则匹配,但源服务器的响应包含
cache-control: no-transformHTTP 标头,则压缩规则不会修改该响应。源服务器使用此标头指示中间节点(如 Cloudflare)不应更改响应正文。
排查 Compression Rules 时,使用 Cloudflare Trace 判断某条规则是否对特定 URL 生效。