Skip to content
返回云服务

Azure CDN

全球内容分发网络,POP 节点覆盖 118+ 城市,支持 Microsoft、Verizon 和 Akamai 后端,提供动态站点加速和 WAF 集成。

Azure进阶

为什么

Azure CDN 在边缘 POP 缓存静态和动态内容,降低远距离用户延迟并卸载源站流量。标准 Microsoft 层与 Azure Front Door WAF、自定义域名和压缩集成,按出口计费无承诺。Azure holds 21% cloud market share (Synergy Research Q4 2024)。

Azure 是拥有 Microsoft 365 / Active Directory 资产的企业的默认选择 — 95% 的财富 500 强使用 Azure。AKS 和 Cosmos DB 对 .NET 工作负载是一等公民。

何时使用

在 Blob Storage、App Service 或任何 HTTP 源站前使用 Azure CDN 加速全球访问。需要多区域故障转移、URL 重写和 WAF 时选 Front Door(高级);简单缓存用普通 CDN。

对绝不可缓存的内容(如实时仪表盘)慎用 CDN,除非仔细设置 cache-control 头。

如何做

1. 创建 CDN 配置文件(Standard Microsoft 最便宜且与 Front Door WAF 集成)。 2. 创建指向源站(如 mystore.blob.core.windows.net)的终结点。 3. 为基于文本的 MIME 类型启用压缩。 4. 添加自定义域名并绑定 TLS 证书(Standard Microsoft 上托管证书免费)。 5. 设置缓存规则:遵循源站 cache-control 或用自定义规则覆盖。 6. 可选启用 WAF 并使用托管规则集(OWASP)。 ```bash az cdn profile create --name mycdn --resource-group rg --sku Standard_Microsoft az cdn endpoint create --name myendpoint --profile-name mycdn --resource-group rg --origin mystore.blob.core.windows.net --origin-host-header mystore.blob.core.windows.net ```

示例

新部署后清除 CDN 缓存,让用户立即看到新内容: ```bash # 清除全部 az cdn endpoint purge --name myendpoint --profile-name mycdn --resource-group rg --content-paths "/*" # 清除特定路径 az cdn endpoint purge --name myendpoint --profile-name mycdn --resource-group rg --content-paths "/assets/app.js" ``` 源站返回正确的缓存头让 CDN 遵循: ```http HTTP/1.1 200 OK Cache-Control: public, max-age=86400 Content-Type: text/css ```

常见问题

  • ⚠部署后内容过期 —— CDN 按 cache-control 头缓存;要么缩短 max-age,要么部署后清除,并对资源文件名加版本(app.abc123.js)以使用长 max-age。
  • ⚠自定义域名 TLS 显示 'pending' —— DNS CNAME 必须先传播;用 nslookup 验证,之后 Azure 自动签发托管证书。
  • ⚠压缩不生效 —— 确保源站返回未压缩的 Content-Encoding,且 CDN 压缩设置包含该 MIME 类型(如 application/json)。

最佳实践

  • ✓使用内容寻址文件名(文件名含哈希),可设 max-age=31536000(1 年)且永不返回过期内容 —— 无需清除。
  • ✓在 Blob Storage 前加 CDN 并用自定义域名,获得干净 URL(cdn.example.com 而非 mystore.blob.core.windows.net)。
  • ✓在 Front Door/CDN Standard Microsoft 上启用 WAF 并使用 OWASP 3.2 规则集,在边缘阻止 SQLi/XSS,流量到达源站前拦截。

常见问题解答

什么是Azure CDN?它解决什么问题?

全球内容分发网络,POP 节点覆盖 118+ 城市,支持 Microsoft、Verizon 和 Akamai 后端,提供动态站点加速和 WAF 集成。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Azure CDN?

两步即可跑通:① 创建 CDN 配置文件(Standard Microsoft 最便宜且与 Front Door WAF 集成)。;② 创建指向源站(如 mystore.blob.core.windows.net)的终结点。。建议先用免费套餐验证流程,再接入生产环境。

Azure CDN 最容易踩的坑是什么?

最高频的问题是:部署后内容过期 —— CDN 按 cache-control 头缓存;要么缩短 max-age,要么部署后清除,并对资源文件名加版本(app.abc123.js)以使用长 max-age。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Azure CDN 的最佳实践有哪些?

Azure CDN 的最佳实践包括:使用内容寻址文件名(文件名含哈希),可设 max-age=31536000(1 年)且永不返回过期内容 —— 无需清除。;在 Blob Storage 前加 CDN 并用自定义域名,获得干净 URL(cdn.example.com 而非 mystore.blob.core.windows.net)。;在 Front Door/CDN Standard Microsoft 上启用 WAF 并使用 OWASP 3.2 规则集,在边缘阻止 SQLi/XSS,流量到达源站前拦截。。其中首条「使用内容寻址文件名(文件名含哈希),可设 max-age=31536000(1 年)且永不返回过期内容 —— 无需清除。」应作为团队默认规范写入 IaC 模板。

Azure CDN 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Azure CDN 多数提供免费套餐,先在免费额度内验证再放量。