0Pricing
Azure Fundamentals · 课时

Azure CDN 配置文件和终结点

创建由 Blob 存储源站支持的 Azure CDN 终结点,配置缓存规则和查询字符串行为,并按需清除缓存内容。

Azure CDN 配置文件和终结点 是 CoddyKit 上的免费 Azure Fundamentals 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Azure Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Azure Fundamentals 课程共包含 4 节课。

什么是内容分发网络

内容分发网络(CDN)是由分布在各地的服务器组成的网络,这些服务器部署在靠近最终用户的地理接入点(PoPs)。用户请求内容时,CDN 会从距离用户最近的 PoP 缓存提供内容,而不是让源服务器直接提供。这样可以降低延迟(尤其是对于远离源区域的用户)、减轻源服务器负载并提高恢复能力。Azure CDN 可与 Blob Storage、App Service 以及任何可通过公共网络访问的 HTTP 源进行原生集成。

Azure CDN 提供商

Azure CDN 通过多个提供商层级提供:Azure CDN Standard from Microsoft — 默认选项,与 Microsoft 紧密集成,提供基本缓存规则和 HTTP/2 支持。Azure CDN Standard from Akamai — 在全球拥有广泛的 PoP 覆盖范围,并且传播速度快。Azure CDN Standard/Premium from Verizon — 提供高级规则引擎和分析功能(高级层)。每个提供商的功能集和定价都不同;对于大多数 AZ-900 场景,重点是 Azure CDN Standard from Microsoft。

CDN 配置文件和终结点

Azure CDN 配置文件是顶层容器,用于将 CDN 终结点组合在一起,并确定提供商和定价层级。CDN 终结点是映射到源的特定主机名(例如 myapp.azureedge.net)。每个终结点都有自己的缓存行为配置。一个配置文件可以包含多个终结点,例如为静态资源、API 响应和视频流分别设置终结点,并为每个终结点配置不同的缓存规则。

# Create a CDN profile and endpoint
az cdn profile create \
  --name myCdnProfile \
  --resource-group myRG \
  --sku Standard_Microsoft

az cdn endpoint create \
  --name myEndpoint \
  --profile-name myCdnProfile \
  --resource-group myRG \
  --origin myapp.azurewebsites.net \
  --origin-host-header myapp.azurewebsites.net

缓存规则和 TTL

生存时间(TTL)控制缓存的响应在 PoP 中保留多长时间,超过该时间后必须从源刷新。您可以在三个级别设置缓存规则:全局缓存规则(应用于终结点上的所有请求)、自定义规则(根据路径模式或文件扩展名进行匹配)以及查询字符串行为(为每个唯一查询字符串分别缓存,或忽略查询字符串)。根据内容类型设置 TTL 是最佳实践:图像的 TTL 较长,HTML 的 TTL 较短。

# Set a global caching rule to cache all content for 7 days
az cdn endpoint update \
  --name myEndpoint \
  --profile-name myCdnProfile \
  --resource-group myRG \
  --query-string-caching-behavior IgnoreQueryString

将 Blob Storage 作为 CDN 源

最常见的 Azure CDN 配置之一是使用 Blob Storage 容器作为源。将静态资源(图像、CSS、JS、视频)上传到存储帐户,将容器设置为公开读取,然后配置一个指向 Blob 主终结点(myaccount.blob.core.windows.net)的 CDN 终结点。CDN 会将 Blob 缓存在全球各地的 PoP 中,用户从距离最近的 PoP 下载内容,而不是从存储区域下载。您还可以将自定义源主机名用于静态网站托管。

# Create CDN endpoint pointing to Blob Storage static website
az cdn endpoint create \
  --name myStaticSite \
  --profile-name myCdnProfile \
  --resource-group myRG \
  --origin myaccount.blob.core.windows.net \
  --origin-host-header myaccount.blob.core.windows.net \
  --is-http-allowed false \
  --is-https-allowed true

缓存清除

当您更新源站上的内容时(例如部署新版本的 JavaScript 文件),PoPs 中缓存的副本可能会继续提供过期内容,直到 TTL 到期。缓存清除会立即从每个 PoP 中移除指定文件或全部缓存内容,强制下一次请求从源站重新获取内容。您可以清除特定 URL、通配符路径(例如 /assets/*)或终结点上的全部内容。清除操作需要 2–3 分钟才能传播到全球所有 PoPs。

# Purge specific files from the CDN cache
az cdn endpoint purge \
  --name myEndpoint \
  --profile-name myCdnProfile \
  --resource-group myRG \
  --content-paths '/index.html' '/js/app.js' '/css/style.css'

CDN 和 HTTPS 自定义域

默认情况下,CDN 终结点使用 .azureedge.net 域名。若要使用您自己的域名提供内容(例如 static.contoso.com),请在 CDN 终结点上添加一个自定义域,方法是创建一条指向终结点主机名的 CNAME 记录。添加后,您可以在自定义域上启用 HTTPS,证书可以使用 Azure 托管证书(免费且自动续订),也可以使用存储在 Key Vault 中的您自己的证书。强制使用 HTTPS 会自动将 HTTP 流量重定向到 HTTPS。

# Add a custom domain and enable HTTPS with managed cert
az cdn custom-domain create \
  --name myCustomDomain \
  --hostname 'static.contoso.com' \
  --endpoint-name myEndpoint \
  --profile-name myCdnProfile \
  --resource-group myRG

az cdn custom-domain enable-https \
  --name myCustomDomain \
  --endpoint-name myEndpoint \
  --profile-name myCdnProfile \
  --resource-group myRG

提升性能的压缩

在 CDN 终结点上启用文件压缩后,CDN 会使用 gzip 或 Brotli 压缩基于文本的资源(HTML、CSS、JavaScript、SVG),从而减小通过网络传输的文件大小。CDN 会在 PoP 缓存内容之前先对其进行压缩,因此后续针对同一资源的请求可以直接获得压缩版本,不会产生额外的 CPU 开销。压缩对 JS 捆绑包尤其有效,因为压缩后其大小可能缩小 5–10 倍。

地理筛选

CDN 终结点上的地理筛选允许您允许或阻止来自特定国家/地区的用户访问内容。这可用于满足内容许可合规要求(例如,某个视频仅在特定国家/地区获得许可)、监管要求,或阻止已知是恶意流量高发来源的国家/地区。地理筛选规则按国家/地区代码和 URL 路径配置,您可以只阻止特定内容目录,而不是整个终结点。

CDN 分析与诊断

Azure CDN 在门户中提供内置的使用情况分析,包括已消耗的带宽、命中率/未命中率、请求总数,以及与从源站提供内容相比节省的带宽。对于 Microsoft 层级的 CDN,您还可以通过诊断设置将访问日志发送到 Log Analytics 工作区或 Storage 帐户,从而针对原始 CDN 访问日志数据运行 KQL 查询。分析缓存命中率有助于您调整 TTL:较低的缓存命中率意味着大多数请求都会传递到源站,这样 CDN 就无法发挥应有的作用。

CDN 与 Azure Front Door 的比较

Azure CDN 和 Azure Front Door 都会在 PoPs 中缓存内容,但它们的主要用途不同。Azure CDN 擅长以较低成本从单个源站缓存和传递静态内容。Azure Front Door则通过多个源站后端提供智能的全球负载均衡和路由、用于自动故障转移的运行状况探测、内置 Web Application Firewall 以及基于路径的路由,因此更适合多区域主动-主动 Web 应用程序。您通常会在同一个解决方案中同时使用二者。

快速检查

测试您对本课程中 Microsoft Azure Fundamentals (AZ-900) 概念的理解。

课程回顾

在本课程中,您学习了:Azure CDN 配置文件和终结点会从靠近用户的 PoPs 提供缓存内容,以降低延迟;缓存规则和 TTL控制内容在从源站重新获取之前缓存多长时间;缓存清除会在源站更新后立即移除过期内容。接下来,我们将学习 Azure Front Door,了解如何在多个后端源站之间实现全球负载均衡和路由。

常见问题解答

「Azure CDN 配置文件和终结点」课时是免费的吗?

是的 — 「Azure CDN 配置文件和终结点」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Azure Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Azure Fundamentals 课程共包含 4 节课。

「Azure CDN 配置文件和终结点」这节课中我会学到什么?

创建由 Blob 存储源站支持的 Azure CDN 终结点,配置缓存规则和查询字符串行为,并按需清除缓存内容。 你通过在浏览器中直接运行的动手代码来练习 Azure Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Azure Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Azure Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「Azure CDN 配置文件和终结点」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Azure Fundamentals 课中编写并运行代码吗?

能。每节 Azure Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Azure CDN 配置文件和终结点
  2. Azure Front Door:全球负载均衡
  3. Front Door 上的 Web 应用程序防火墙
  4. 使用 CDN 规则优化性能
← 返回 Azure Fundamentals