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

排除 Azure 内容分发网络文件压缩故障

重要

Microsoft Azure CDN Standard(经典版)将于 2027 年 9 月 30 日停用。 为了避免任何服务中断,请务必在 2027 年 9 月 30 日之前将 Microsoft Azure CDN Standard(经典版)配置文件迁移到 Azure Front Door Standard 层或 Premium 层。 有关详细信息,请参阅 Microsoft Azure CDN Standard(经典版)停用

Edgio Azure CDN 将于 2025 年 1 月 15 日停用。 为了避免服务中断,必须在此日期之前将工作负载迁移到 Azure Front Door。 有关详细信息,请参阅 Edgio 的 Azure CDN 停用常见问题解答

本文将帮助你排查 CDN 文件压缩问题。

如果在本文中有任何需要协助的地方,可以联系 MSDN Azure 和堆栈溢出论坛上的 Azure 专家。 或者,也可以提交 Azure 支持事件。 请转到 Azure 支持站点并选择“获取支持”。

症状

已经为终结点启用了压缩,但返回的文件没有压缩。

提示

要检查返回的文件是否已压缩,需要使用 Fiddler 等工具或浏览器的开发人员工具。 检查使用缓存的内容分发网络内容返回的 HTTP 响应标头。 如果存在名为 Content-Encoding 的标头,且其值为 gzip、bzip2、brotli 或 deflate,则内容已压缩。

Content-Encoding 标头

原因

有若干个可能的原因,包括:

  • 所请求的内容不适合压缩。
  • 请求的文件类型未启用压缩。
  • HTTP 请求没有包含请求有效压缩类型的标头。
  • 源正在发送分块内容。

疑难解答步骤

提示

与部署新的终结点一样,内容分发网络配置更改也需要一些时间才能传播到整个网络。 通常情况下会在 90 分钟内应用更改。 如果这是首次为内容分发网络终结点设置压缩,应考虑等待 1-2 个小时,以确保压缩设置传播到 POP。

验证请求

首先,应该对请求进行一次快速的完整性检查。 可以使用浏览器的开发人员工具来查看正在提出的请求。

  • 验证是否将请求发送到终结点 URL,<endpointname>.azureedge.net,而不是源。
  • 验证该请求包含 Accept-encoding 标头,并且该标头的值包含 gzip、deflate、brotli 或 bzip2。

CDN 请求标头

验证压缩设置(标准 CDN 配置文件)

注意

仅当 CDN 配置文件为来自 Microsoft 的 Azure CDN 标准或来自 Edgio 的 Azure CDN 标准配置文件时,此步骤才适用。

Azure 门户中导航到终结点,然后选择“配置”按钮。

  • 验证是否已启用压缩。
  • 验证待压缩内容的 MIME 类型是否已包括在压缩格式列表中。

CDN 压缩设置

验证压缩设置(高级 CDN 配置文件)

注意

仅当 CDN 配置文件为来自 Edgio 的 Azure CDN 高级配置文件时,此步骤才适用。

Azure 门户中导航到终结点,然后选择“管理”按钮。 随即会打开补充门户。 将鼠标悬停在“HTTP 大”选项卡上,然后悬停在“缓存设置”浮出控件。 选择“压缩”

  • 验证是否已启用压缩。
  • 验证“文件类型”列表包含以逗号分隔(无空格)的 MIME 类型列表。
  • 验证待压缩内容的 MIME 类型是否已包括在压缩格式列表中。

CDN 高级压缩设置

验证内容是否已缓存(Edgio CDN 配置文件)

注意

仅当 CDN 配置文件为来自 Edgio 的 Azure CDN 标准或来自 Edgio 的 Azure CDN 高级配置文件时,此步骤才适用。

使用浏览器的开发人员工具,检查响应标头以确保文件已缓存在提出请求的区域中。

  • 检查 Server 响应标头。 标头应具有格式平台(POP/服务器 ID),如下例所示。
  • 检查 X-Cache 响应标头。 标头应显示 HIT

CDN 响应标头

验证该文件是否满足大小要求(Edgio CDN 配置文件)

注意

仅当 CDN 配置文件为来自 Edgio 的 Azure CDN 标准或来自 Edgio 的 Azure CDN 高级配置文件时,此步骤才适用。

为了适合进行压缩,文件必须符合以下大小要求:

  • 大于 128 字节(内容长度:128)
  • 小于 3 MB

在源服务器上检查请求是否包含 Via 标头

Via HTTP 标头指明了由代理服务器正在将请求传递到的 web 服务器。 默认情况下,当请求包含 Via 标头时,Microsoft IIS Web 服务器不会压缩响应。 要覆盖此行为,请执行以下操作: