1.
概述与准备
- 准备:一台香港节点主机(可做origin)、域名、CDN服务商(支持香港/大湾区POP,支持HTTP/2/3、Range请求与分片缓存)。
- 目标:通过CDN做边缘缓存,origin在香港提供稳定带宽与响应。
2.
选择CDN与购买建议
- 选项:阿里云CDN、腾讯云CDN、Cloudflare、Akamai等,确认香港节点、视频优化(HLS/DASH)及Token鉴权。
- 建议:购买含HTTP/3、全站HTTPS、带宽按峰值计费或包月的计划。
3.
域名与DNS配置
- 在域名解析处新增CNAME记录:your-video.example.com -> CDN提供的CNAME(例如xxxx.cdnprovider.com)。
- 将TTL调低(如300s)便于切换,验证:nslookup/ dig your-video.example.com。
4.
Origin(香港服务器)基本配置
- Web服务推荐Nginx,开启sendfile、tcp_nopush、tcp_nodelay,worker_processes按CPU设。
- 启用Range支持,示例location配置见下段。
5.
Nginx示例配置(支持HLS/MP4/Range)
- 在nginx.conf中加入:
location ~* \.(m3u8|ts|mp4)$ {
proxy_pass http://127.0.0.1:8080; # 或root目录
add_header Access-Control-Allow-Origin *; # 跨域视频播放
add_header Cache-Control "public, max-age=86400";
sendfile on; tcp_nopush on; tcp_nodelay on;
}
- 注意:对.m3u8设置短缓存(如30s),对.ts/.mp4设置长缓存(如86400s)。
6.
CDN端缓存规则与缓存键
- 在CDN控制台创建Cache规则:匹配路径后缀(.m3u8短缓存,.ts/.mp4长缓存)。
- 缓存键包含Host+URI,一般不带Cookie,必要时保留query string以支持token化请求。
7.
视频分发优化:HLS/DASH与Range
- 使用HLS/DASH分片(m3u8+ts或mpd+seg),CDN缓存分片效果好。
- 确保Origin支持Accept-Ranges头,CDN保留该头以支持播放器seek。
8.
HTTPS与证书
- 建议使用CDN托管证书或Let's Encrypt。操作:在CDN控制台绑定域名、选择CDN证书或上传证书。
- 验证:curl -I https://your-video.example.com/playlist.m3u8 查看证书链。
9.
鉴权与防盗链
- 可启用Token防盗链、Referer白名单或签名URL,配置在CDN控制台并在Origin端保持token校验同步。
- 测试签名:通过CDN提供的签名生成接口生成样例URL进行播放验证。
10.
预热、预取与清理策略
- 预热:对高并发视频使用CDN API预热接口或主动拉取(prefetch)。
- 缓存清理:配置按路径/文件的Purge API,或设置合理的缓存失效时间。
11.
监测与测试方法
- 用curl检查响应头:curl -I -H "Range: bytes=0-10" https://your-video.example.com/video.mp4
- 用ffmpeg/vlc或浏览器播放m3u8,检查是否走CDN(通过响应头或IP)。启用CDN日志查看命中率。
12.
常见问题与排查步骤
- 无法播放:检查CNAME是否生效、证书是否正确、跨域头是否存在。
- 命中率低:确认Cache-Control/Expires设置、检查是否含Cookie或动态参数影响缓存键。
13.
性能优化建议
- 启用HTTP/3(QUIC)提高首包时延,开启边缘压缩(非视频文件)。
- 合理分片大小(HLS 2-6s),设置合理的连接超时和重试策略。
14.
安全与合规注意
- 注意香港/中国大陆流量合规(如需大陆覆盖考虑备案与混合加速)。
- 日志脱敏、限制控制台权限与API密钥管理。
15.
问:在香港节点origin时,如何设置m3u8与ts的缓存策略?
- 答:将.m3u8设置为短缓存(如30s-120s)以便快速更新播放列表;将.ts或.mp4设置为长缓存(如86400s或更长),在CDN控制台通过文件后缀规则分别配置并保证Origin返回合适的Cache-Control头。
16.
问:如何验证视频流量是真正从CDN边缘节点获取?
- 答:通过curl -I检查响应头(如X-Cache、Via、CF-Cache-Status等),或查看返回的IP是否为CDN提供的边缘IP,并在CDN日志中确认命中记录;播放时观察延迟降低与带宽稳定性。
17.
问:遇到播放卡顿或seek失败,优先排查哪些项?
- 答:先验证Origin是否支持Range与返回Accept-Ranges头;检查CDN是否保留Range请求并缓存分片;确认分片时长过长会导致seek延迟,必要时减小分片时长并检查网络丢包与边缘节点负载。
来源:香港服务器节点怎么设置配合CDN实现视频加速分发策略