赞片CMSCDN配置
给赞片 CMS 接上 CDN 后,视频切片(m3u8/ts)和图片会从就近节点分发,源站带宽和播放卡顿都会明显下降,这篇按顺序做一遍就能跑通。
第一步:在 CDN 控制台加加速域名
这一步要拿到一条 CNAME,DNS 解析填它之后,用户请求才会走到 CDN 节点。
以阿里云 CDN 控制台为例:进入「域名管理」→ 点击「添加域名」,填写你要用的加速域名(如 cdn.example.com,必须是已备案的域名),业务类型选「音视频点播加速」,加速区域按用户分布选「中国内地」或「全球(不含中国内地)」。源站信息选「源站域名」或「IP」,填你的赞片 CMS 所在服务器,端口填 443(源站有证书)或 80。提交后列表里会给出一个形如 cdn.example.com.w.kunlunsl.com 的 CNAME 值。
腾讯云 CDN 的入口是「域名管理」→「添加域名」,业务类型选「点播加速」,其余类似;又拍云、七牛在「云分发」→「域名管理」里操作。
注意:源站端口和协议必须和你的 Nginx 实际监听一致,填错的表现是所有回源请求 502,别急着怀疑 CMS。
第二步:做 DNS 解析
这一步把域名指向 CDN。到域名注册商或云解析控制台,给 cdn.example.com 添加一条记录:记录类型 CNAME,记录值填第一步拿到的 CNAME 地址,TTL 用默认 600 秒即可。生效后用 ping cdn.example.com 或 nslookup cdn.example.com 看返回的 IP 是否属于 CDN 厂商网段。
第三步:配置缓存规则
这一步决定哪些文件走缓存、缓存多久,是播放流畅度的关键。在 CDN 控制台找「缓存配置」→「缓存过期时间」,按后缀加规则:
m3u8:缓存时间设 1~10 秒,或选「遵循源站」。切片列表更新频繁,缓存太久会出现「播放的还是上一集」。ts:缓存 30 天。切片内容不变,长缓存能省掉绝大部分回源。jpg/png/webp/gif:缓存 7~30 天。php/html:不缓存,避免登录态和动态页被缓存成别人的页面。
第四步:开启防盗链和鉴权
这一步防止别人直接盗用你的流量。在「访问控制」里选 Referer 防盗链,白名单填你自己的站点域名(如 *.example.com),允许空 Referer 视情况勾选(部分播放器不传 Referer)。如果要做更严的控制,用 URL 鉴权(阿里云叫「URL 签名」、腾讯云叫「TypeA/TypeD 鉴权」),把主 KEY 填进去,在赞片 CMS 侧生成带签名的播放地址。
注意:防盗链和鉴权开了之后,先在无痕窗口测一遍播放。规则写错最常见的结果是视频全部 403。
第五步:在赞片 CMS 后台替换资源域名
这一步让站内页面直接输出 CDN 地址,而不是源站地址。登录赞片 CMS 后台,进左侧菜单「系统」→「基本设置」(部分版本叫「网站设置」),找「CDN 加速域名」「播放地址域名」或「资源域名」输入框,填 https://cdn.example.com,保存。如果你的版本没有这个字段,去「附件设置」里改附件访问地址前缀。
保存后到「系统」→「缓存管理」清一次缓存(或删除 runtime/cache 目录),否则页面里还是旧域名。也可以直接在数据库里执行替换:
UPDATE 你的视频表 SET play_url = REPLACE(play_url, 'https://源站域名', 'https://cdn.example.com');
注意:改库前先
mysqldump备份,替换字符串写错会把播放地址整条改废。
第六步:源站 Nginx 配合改两处
这一步保证源站能识别真实访客 IP,并避免 CDN 回源被自己拦住。在 Nginx 站点配置里加:
set_real_ip_from 0.0.0.0/0; # 生产环境换成 CDN 厂商公布的回源 IP 段
real_ip_header X-Forwarded-For;
real_ip_recursive on;
如果源站有 IP 白名单或防火墙,要把 CDN 回源节点 IP 段加进放行列表,否则回源全部超时。
第七步:验证
这一步确认缓存真的生效。执行:
curl -I https://cdn.example.com/你的一个ts切片.ts
看响应头里是否出现 X-Cache: HIT(或 Ali-CDN、X-Cache-Lookup)和 Age 大于 0,出现即说明命中缓存。再打开站内任意一集播放,右键看播放器地址是不是 cdn.example.com 开头的。
注意:第一次请求一定是 MISS(回源),第二次才是 HIT,别拿第一次的结果判断失败。
小结
- 顺序是:加加速域名 → DNS 解析 CNAME → 配缓存 → 配防盗链 → 后台换域名 → 源站改真实 IP → 验证。
ts长缓存、m3u8短缓存或遵循源站,这一条直接决定卡不卡。- 后台改域名后必须清缓存,改数据库前必须备份。
- 回源端口、协议、CDN 回源 IP 白名单是三处最容易漏的地方。
- 上线前先用无痕窗口测播放和防盗链,别等用户反馈。
原文链接:https://www.gj0.com/thread-250.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。