文件压缩是提高文件传输速度和增加页面加载性能的一种简单有效的方法,可通过在从服务器发送文件之前减少其大小来实现。 文件压缩可以减少带宽成本,并为用户提供更快的响应体验。
有两种方法可启用文件压缩:
在源服务器上启用压缩。 在此示例中,Azure CDN 传递压缩文件,将这些文件传递给发出请求的客户端。
直接在 CDN POP 服务器上启用压缩(“快速压缩”)。 在这种情况下,CDN 会压缩文件并将其提供给最终用户,即使源服务器未压缩文件也是如此。
Azure CDN 配置更改可能需要一段时间,才能在整个网络中传播:
对于
Microsoft 推出的 Azure CDN 标准版
配置文件,传播通常可在 10 分钟内完成。
对于
Akamai 的 Azure CDN 标准版
配置文件,传播通常可在一分钟内完成。
对于
Edgio 提供的标准 Azure CDN
和
Edgio 提供的高级 Azure CDN
配置文件,传播通常在 10 分钟内完成。
如果首次为 CDN 终结点设置压缩,请考虑等待 1-2 个小时,确保将压缩设置传播到 POP 之后再排查问题。
标准和高级 CDN 层提供相同的压缩功能,但用户界面不同。 有关标准和高级 CDN 层之间的差异的详细信息,请参阅
Azure CDN 概述
。
标准 CDN 配置文件
本部分适用于
Microsoft 提供的标准 Azure CDN
、
Edgio 提供的标准 Azure CDN
和
Akamai 提供的标准 Azure CDN
配置文件。
从 CDN 配置文件页,选择想要管理的 CDN 终结点。
CDN 终结点页面会打开。
选择“压缩”
。
此时将打开“压缩”页。
选择“启用”
以启用压缩。
使用默认 MIME 类型,或通过添加或删除 MIME 类型来修改列表。
建议不要对压缩格式应用压缩(虽然可以执行此操作)。 压缩格式示例有 ZIP、MP3、MP4 或 JPG。
进行更改后,请选择“保存”
。
高级 CDN 配置文件
本部分仅适用于
Edgio 提供的高级 Azure CDN
配置文件。
从“CDN 配置文件”页中,选择“管理”。
CDN 管理门户打开。
将鼠标悬停在“
HTTP 大
”选项卡上,然后悬停在“
缓存设置
”浮出控件。 选择“压缩”
。
此时将显示压缩选项。
通过选择“启用压缩”
来启用压缩。 在“文件类型”
框中,以逗号分隔的列表(无空格)的形式输入想要压缩的 MIME 类型。
建议不要对压缩格式应用压缩(虽然可以执行此操作)。 压缩格式示例有 ZIP、MP3、MP4 或 JPG。
进行更改后,请选择“更新”
。
Microsoft 的 Azure CDN 标准版配置文件
对于“Microsoft 提供的 Azure CDN 标准版”
配置文件,只有符合条件的文件才能进行压缩。 要符合压缩条件,文件必须:
为已
配置为压缩
的 MIME 类型
源响应中只有“标识”Content-Encoding 标头
大于 1 KB
小于 8 MB
这些配置文件支持以下压缩编码:
gzip (GNU zip)
brotli
如果请求支持多个压缩类型,那么 brotli 压缩优先。
如果对资产的请求指定了 gzip 压缩并且请求导致缓存未命中,则 Azure CDN 将直接在 POP 服务器上对资产执行 gzip 压缩。 此后,将从缓存提供压缩的文件。
如果源使用分块传输编码 (CTE) 将压缩的数据发送到 CDN POP,则不支持大于 8 MB 的响应大小。
Edgio 提供的 Azure CDN 配置文件
对于
Edgio 提供的标准 Azure CDN
和
Edgio 提供的高级 Azure CDN
配置文件,只有符合条件的文件才会被压缩。 要符合压缩条件,文件必须:
大于 128 个字节
小于 3 MB
这些配置文件支持以下压缩编码:
gzip (GNU zip)
DEFLATE
bzip2
Edgio 提供的 Azure CDN 不支持 brotli 压缩。 当 HTTP 请求包含标头时
Accept-Encoding: br
时,CDN 将会响应压缩失败问题。
Akamai 的 Azure CDN 标准版配置文件
对于
Akamai 的 Azure CDN 标准版
配置文件,所有文件都适合压缩。 但文件必须为已
配置为压缩
的 MIME 类型。
这些配置文件仅支持 gzip 压缩编码。 配置文件终结点请求 gzip 编码的文件时,始终是从源请求,而不考虑客户端请求。
压缩行为表
这些表描述每种方案的 Azure CDN 压缩行为:
已禁用压缩或文件不适合压缩
客户端请求的格式(通过 Accept-Encoding 标头)
缓存文件格式
CDN 对客户端的响应
如果源返回未压缩文件,CDN 将执行压缩。
Edgio 提供的 Azure CDN
将传递第一个请求上的未压缩文件,然后压缩并缓存文件以供后续请求使用。
永远不会压缩带
Cache-Control: no-cache
标头的文件。
CDN 执行解压缩。
Microsoft 推出的 Azure CDN 不支持解压缩,而是从源中提取数据,并针对解压缩的客户端单独进行缓存。