视频放映室架构优化:直连 CDN 播放
问题
之前的架构中,DPlayer 播放解析视频时需要通过服务端代理转发视频流:
用户浏览器 → 你的服务器(Node.js/Nginx) → CDN → 视频云服务器出网带宽通常只有 3-5M,1080p 视频码率需要 2MB/s+,导致播放卡顿。
解决方案
两处修改,让视频流绕过服务器直连 CDN:
1. 添加 Referrer 隐身标签
在 page.html 的 <head> 中添加:
<meta name="referrer" content="no-referrer">
作用:浏览器请求视频 CDN 时不携带 Referer 头,CDN 会视为直接访问而放行,破解 Referer 防盗链。
2. DPlayer 直接播放 CDN 直链
将原来的代理逻辑:
// 旧:通过服务端代理转发(消耗服务器带宽)
var proxyUrl = '/video-proxy/?url=' + encodeURIComponent(playUrl);
dp = new DPlayer({ video: { url: proxyUrl } });
改为直接播放:
// 新:CDN 直连(流量不经服务器)
dp = new DPlayer({ video: { url: result.data.playUrl } });
架构变化
优化前:浏览器 → 服务器(代理) → CDN (服务器带宽瓶颈)
优化后:浏览器 → CDN 直连 (服务器零带宽消耗)
服务器只负责"指路"(API 返回 MP4 直链),视频流量由用户宽带直连 CDN 承载。
验证方法
F12 → Network → 过滤 .mp4:
请求域名是
videooc.tc.qq.com等 CDN 域名 → 架构正确状态码
206 Partial Content→ Range 分段加载正常,拖拽进度条秒开