你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过在 Azure CDN 中压缩文件来提高性能
重要
Microsoft Azure CDN Standard(经典版)将于 2027 年 9 月 30 日停用。 为了避免出现服务中断,请务必在 2027 年 9 月 30 日之前将 Microsoft 的 Azure CDN 标准层(经典版)配置文件迁移到 Azure Front Door 标准层或高级层。 有关详细信息,请参阅 Microsoft Azure CDN Standard(经典版)停用。
Edgio 的 Azure CDN 已于 2025 年 1 月 15 日停用。 有关详细信息,请参阅 Edgio 的 Azure CDN 停用常见问题解答。
文件压缩是提高文件传输速度和增加页面加载性能的一种简单有效的方法,可通过在从服务器发送文件之前减少其大小来实现。 文件压缩可以减少带宽成本,并为用户提供更快的响应体验。
有两种方法可启用文件压缩:
- 在源服务器上启用压缩。 在此示例中,Azure CDN 传递压缩文件,将这些文件传递给发出请求的客户端。
- 直接在 CDN POP 服务器上启用压缩(“快速压缩”)。 在这种情况下,CDN 会压缩文件并将其提供给最终用户,即使源服务器未压缩文件也是如此。
重要
Azure 内容分发网络配置更改可能最多需要 10 分钟,才能在整个网络中传播:
如果首次为 CDN 终结点设置压缩,请考虑等待 1-2 个小时,确保将压缩设置传播到 POP 之后再排查问题。
启用压缩
标准和高级 CDN 层提供相同的压缩功能,但用户界面不同。 有关标准和高级 CDN 层之间的差异的详细信息,请参阅 Azure CDN 概述。
从 CDN 配置文件页,选择想要管理的 CDN 终结点。
CDN 终结点页面会打开。
选择“压缩”。
此时将打开“压缩”页。
选择“启用”以启用压缩。
使用默认 MIME 类型,或通过添加或删除 MIME 类型来修改列表。
提示
建议不要对压缩格式应用压缩(虽然可以执行此操作)。 压缩格式示例有 ZIP、MP3、MP4 或 JPG。
进行更改后,请选择“保存”。
压缩规则
只有满足以下条件的文件才有资格进行压缩:
- 为已配置为压缩的 MIME 类型
- 源响应中只有“标识”Content-Encoding 标头
- 大于 1 KB
- 小于 8 MB
仅支持以下压缩编码:
- gzip (GNU zip)
- brotli
如果请求支持多个压缩类型,那么 brotli 压缩优先。
如果对资产的请求指定了 gzip 压缩并且请求导致缓存未命中,则 Azure CDN 将直接在 POP 服务器上对资产执行 gzip 压缩。 此后,将从缓存提供压缩的文件。
如果源使用分块传输编码 (CTE) 将数据发送到 CDN POP,则不支持压缩。
压缩行为表
这些表描述每种方案的 Azure CDN 压缩行为:
已禁用压缩或文件不适合压缩
客户端请求的格式(通过 Accept-Encoding 标头) | 缓存文件格式 | CDN 对客户端的响应 | 注意 |
---|---|---|---|
压缩 | 压缩 | 压缩 | |
压缩 | 未压缩 | 未压缩 | |
压缩 | 未缓存 | 压缩或未压缩 | 源响应确定 CDN 是否执行压缩。 |
未压缩 | 压缩 | 未压缩 | |
未压缩 | 未压缩 | 未压缩 | |
未压缩 | 未缓存 | 未压缩 |
已启用压缩且文件适合压缩
客户端请求的格式(通过 Accept-Encoding 标头) | 缓存文件格式 | CDN 对客户端的响应 | 说明 |
---|---|---|---|
压缩 | 压缩 | 压缩 | 在支持的格式之间进行 CDN 转码。 Microsoft 推出的 Azure CDN 不支持在格式之间进行转码,而是从源中提取数据,并针对格式分别进行压缩和缓存。 |
压缩 | 未压缩 | 压缩 | CDN 执行压缩。 |
压缩 | 未缓存 | 压缩 | 如果源返回未压缩文件,CDN 将执行压缩。 永远不会压缩带 Cache-Control: no-cache 标头的文件。 |
未压缩 | 压缩 | 未压缩 | CDN 执行解压缩。 Microsoft 推出的 Azure CDN 不支持解压缩,而是从源中提取数据,并针对解压缩的客户端单独进行缓存。 |
未压缩 | 未压缩 | 未压缩 | |
未压缩 | 未缓存 | 未压缩 |
媒体服务 CDN 压缩
对于启用了媒体服务 CDN 流式处理的终结点,默认为以下 MIME 类型启用压缩:
- application/vnd.ms-sstr+XML
- application/dash+XML
- application/vnd.Apple.mpegurl
- application/f4m+XML