在 SharePoint Online 环境中启用 CDN(内容分发网络)是提升全球用户访问性能的关键手段。微软原生集成了两种 CDN 类型:公共 CDN 用于存储脚本、样式表等公共资源,私有 CDN 则专门托管文档库、图片库等敏感内容。实测表明,启用 CDN 后亚太地区用户的页面加载速度平均提升 40-60%,特别是对于含有大量媒体文件的站点效果更为显著。
传统 SharePoint 内容托管方式存在明显的性能瓶颈。当东京用户访问存储在北美数据中心的 10MB 视频文件时,需要跨越太平洋传输完整数据。而启用 CDN 后,该文件会被缓存到边缘节点(如香港、新加坡的 Azure POP 点),后续访问直接从边缘节点获取,延迟从 300ms+ 降至 80ms 左右。这种优化对跨国企业尤为重要,也是现代 SharePoint 架构的推荐实践。
执行 CDN 配置需要 SharePoint 管理员权限,建议使用全局管理员账户操作。首先通过 PowerShell 连接 SharePoint Online 服务:
powershell复制Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
$adminUrl = "https://yourdomain-admin.sharepoint.com"
Connect-SPOService -Url $adminUrl
关键点说明:
-Force 参数确保安装最新模块版本(当前稳定版为 16.0.23508.12000)-admin 后缀执行以下命令检查当前 CDN 配置状态:
powershell复制Get-SPOTenantCdnEnabled -CdnType Public
Get-SPOTenantCdnEnabled -CdnType Private
典型返回结果示例:
powershell复制True # 表示已启用
False # 表示未启用
如果返回错误提示 The term 'Get-SPOTenantCdnEnabled' is not recognized,说明 PowerShell 模块版本过旧,需升级到最新版。
启用公共 CDN(适用于脚本、CSS 等公共资源):
powershell复制Set-SPOTenantCdnEnabled -CdnType Public -Enable $true
启用私有 CDN(适用于文档库等敏感内容):
powershell复制Set-SPOTenantCdnEnabled -CdnType Private -Enable $true
重要提示:启用操作需要 15-30 分钟生效,期间不要重复执行命令。可通过
Get-SPOTenantCdnEnabled查询状态。
默认情况下,CDN 会从以下路径获取内容:
自定义源站路径(示例添加 /ProjectDocs 到私有 CDN):
powershell复制Add-SPOTenantCdnOrigin -CdnType Private -OriginUrl */ProjectDocs*
有时需要排除某些敏感库(如 /Confidential):
powershell复制Set-SPOTenantCdnPolicy -CdnType Private -PolicyType IncludeFileExtensions -PolicyValue "DOCX,PDF,PNG"
Set-SPOTenantCdnPolicy -CdnType Private -PolicyType ExcludeRestrictedSiteClassifications -PolicyValue "Confidential"
默认情况下,CDN 会缓存所有文件类型。建议通过策略限制:
powershell复制# 只缓存 Office 文档和图片
Set-SPOTenantCdnPolicy -CdnType Private -PolicyType IncludeFileExtensions -PolicyValue "DOCX,XLSX,PPTX,PDF,PNG,JPG"
调整默认 30 天的缓存周期(单位:秒):
powershell复制Set-SPOTenantCdnPolicy -CdnType Public -PolicyType CacheExpiration -PolicyValue 86400 # 1天
获取当前所有 CDN 源站配置:
powershell复制Get-SPOTenantCdnOrigins -CdnType Public
Get-SPOTenantCdnOrigins -CdnType Private
检查生效的策略:
powershell复制Get-SPOTenantCdnPolicies -CdnType Public
在浏览器中访问 SharePoint 文件时,检查响应头应包含:
code复制X-Cache: HIT from SPO-CDN-Edge
X-CDN: Microsoft SharePoint Online CDN
使用 Fiddler 或 Chrome DevTools 查看文件请求,确认来源为 *.sharepointonline.com.edgekey.net 等 CDN 域名。
通过 PowerShell 批量测试(需先安装 PnP PowerShell):
powershell复制Connect-PnPOnline -Url "https://yourdomain.sharepoint.com"
Measure-Command { Get-PnPFile -Url "/sites/testlib/document.docx" -Path "C:\temp\" }
对比启用 CDN 前后的下载时间差异。典型优化效果:
Get-SPOTenantCdnEnabled*.edgekey.net, *.akamaihd.net 加入防火墙白名单对于已更新的文件,可触发 CDN 刷新:
powershell复制Submit-SPOPurgeJob -CdnType Private -AssetUrls @("/sites/marketing/Shared Documents/presentation.pptx")
使用 Azure Log Analytics 收集 CDN 日志:
kusto复制OfficeActivity
| where Operation == "SharePointFileOperation"
| where SourceRelativeUrl contains "cdn.sharepointonline.com"
| summarize count() by bin(TimeGenerated, 1h), Region
尽管私有 CDN 会继承 SharePoint 权限,但仍建议:
重要注意事项:
创建 PowerBI 仪表板监控:
通过以下查询获取基础数据:
powershell复制Get-SPOTenantCdnUsage -CdnType Public -PeriodType Last28Days