你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

通过在 Azure CDN 中压缩文件来提高性能

文件压缩是提高文件传输速度和增加页面加载性能的一种简单有效的方法,可通过在从服务器发送文件之前减少其大小来实现。 文件压缩可以减少带宽成本,并为用户提供更快的响应体验。

有两种方法可启用文件压缩:

  • 在源服务器上启用压缩。 在此示例中,Azure CDN 传递压缩文件,将这些文件传递给发出请求的客户端。
  • 直接在 CDN POP 服务器上启用压缩(“快速压缩”)。 在这种情况下,CDN 会压缩文件并将其提供给最终用户,即使源服务器未压缩文件也是如此。

重要

Azure 内容分发网络配置更改可能需要一段时间,才能在整个网络中传播:

  • 对于 Microsoft 推出的 Azure CDN 标准版配置文件,传播通常可在 10 分钟内完成。
  • 对于 Edgio 提供的标准 Azure CDNEdgio 提供的高级 Azure CDN 配置文件,传播通常在 10 分钟内完成。

如果首次为 CDN 终结点设置压缩,请考虑等待 1-2 个小时,确保将压缩设置传播到 POP 之后再排查问题。

启用压缩

标准和高级 CDN 层提供相同的压缩功能,但用户界面不同。 有关标准和高级 CDN 层之间的差异的详细信息,请参阅 Azure CDN 概述

标准 CDN 配置文件

注意

本部分适用于来自 Microsoft 的标准 Azure CDN 配置文件和来自 Edgio 的标准 Azure CDN 配置文件。

  1. 从 CDN 配置文件页,选择想要管理的 CDN 终结点。

    CDN 配置文件终结点

    CDN 终结点页面会打开。

  2. 选择“压缩”

    屏幕截图显示了门户菜单中选择了“压缩”的终结点。

    此时将打开“压缩”页。

  3. 选择“启用”以启用压缩。

    屏幕截图显示了启用压缩。

  4. 使用默认 MIME 类型,或通过添加或删除 MIME 类型来修改列表。

    提示

    建议不要对压缩格式应用压缩(虽然可以执行此操作)。 压缩格式示例有 ZIP、MP3、MP4 或 JPG。

  5. 进行更改后,请选择“保存”

高级 CDN 配置文件

注意

本部分仅适用于 Azure CDN Premium from Edgio 配置文件。

  1. 从“CDN 配置文件”页中,选择“管理”。

    CDN 管理选择

    CDN 管理门户打开。

  2. 将鼠标悬停在“HTTP 大”选项卡上,然后悬停在“缓存设置”浮出控件。 选择“压缩”

    CDN 压缩选择

    此时将显示压缩选项。

    CDN 文件压缩选项

  3. 通过选择“启用压缩”来启用压缩。 在“文件类型”框中,以逗号分隔的列表(无空格)的形式输入想要压缩的 MIME 类型。

    提示

    建议不要对压缩格式应用压缩(虽然可以执行此操作)。 压缩格式示例有 ZIP、MP3、MP4 或 JPG。

  4. 进行更改后,请选择“更新”

压缩规则

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,则不支持压缩。

Azure CDN from Edgio 配置文件

对于 Azure CDN Standard from Edgio 和 Azure CDN Premium from Edgio 配置文件,只有符合条件的文件才会被压缩。 要符合压缩条件,文件必须:

  • 大于 128 个字节
  • 小于 3 MB

这些配置文件支持以下压缩编码:

  • gzip (GNU zip)
  • DEFLATE
  • bzip2
  • brotli

当 HTTP 请求包含标头时 Accept-Encoding: br 时,CDN 将会响应压缩失败问题。

压缩行为表

这些表描述每种方案的 Azure CDN 压缩行为:

已禁用压缩或文件不适合压缩

客户端请求的格式(通过 Accept-Encoding 标头) 缓存文件格式 CDN 对客户端的响应 注意
压缩 压缩 压缩
压缩 未压缩 未压缩
压缩 未缓存 压缩或未压缩 源响应确定 CDN 是否执行压缩。
未压缩 压缩 未压缩
未压缩 未压缩 未压缩
未压缩 未缓存 未压缩

已启用压缩且文件适合压缩

客户端请求的格式(通过 Accept-Encoding 标头) 缓存文件格式 CDN 对客户端的响应 说明
压缩 压缩 压缩 在支持的格式之间进行 CDN 转码。
Microsoft 推出的 Azure CDN 不支持在格式之间进行转码,而是从源中提取数据,并针对格式分别进行压缩和缓存
压缩 未压缩 压缩 CDN 执行压缩。
压缩 未缓存 压缩 如果源返回未压缩文件,CDN 将执行压缩。
Azure CDN from Edgio 会传递第一个请求上的未压缩文件,然后压缩并缓存该文件以供后续请求使用。
永远不会压缩带 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

另请参阅