1 - 介绍及安装教程
提示:新版EFV已在后台集成CDN安装管理,如在转码设置未看到该功能,请更新到新版后再使用。
该CDN
为EFV
配套的简易缓存系统,永久免费,目前可完全在EFV
后台进行自动安装等管理操作,当前可以缓存EFV
的m3u8
、ts
、png
、jpeg
、webp
、mp4
、gif
、key
、txt
和jpg
资源。
缓存规则
cdn
系统缓存命中率为100%
,也就是只要通过cdn
域名访问的视频资源,均会100%
缓存到cdn
所在的服务器里面,无需担心命中问题。- 缓存容量内置上限,也就是最多只能缓存服务器总容量的
85%
,防止使用过多,影响系统其它进程;当缓存容量超过85%
时候,就不会再缓存了,低于85%
立即自动缓存。 - 可以自行设置,自动清理多长时间内未被使用的缓存数据;并且当使用容量达到
60%
时候,也会自动清理较长时间内未被使用,且访问次数少于10
次的缓存数据,大于10
次的会等到过期自动清理。 - 支持设置一到多个防盗链白名单,设置后,只能指定网站才能播放
CDN
缓存的m3u8
、ts
等资源,其它网站均会返回403
无权限状态。
安装CDN
提示:后台安装CDN会自动检查并开启BBR加速,无需额外开启。且EFV防盗链设置的禁止ts下载功能需要关闭,才能缓存。
系统要求:CentOS 8+
,Debian 10+
,Ubuntu 20.04+
,AlmaLinux 8+
,Rocky Linux 8+
。
如果你的切片访问量比较大,那么服务器的cpu
即配置尽量好点,且多用几台服务器提供cdn
,不然负载多cdn
服务器容易卡。
首先前往程序后台 ⇒ 点击左侧转码相关 ⇒ CDN
安装管理,再添加CDN
服务器,然后安装CDN
即可。
这里注意加速域名
推荐使用EFV
的ip:3000
访问地址,效果更好,其次才用EFV
的绑定域名地址。
最后安装完成后,可通过实时监控统计
,查看CDN
服务器CPU
、内存、硬盘、带宽、CDN
设置及缓存数统计等。
其它设置
绑定CDN域名
首先需要将CDN
域名解析到CDN
服务器,然后等解析生效,可使用SSH
随便登录你CDN
服务器,使用命令ping yourdoman.com
,将后面域名修改成你自己的CDN
域名,如返回的ip
和你CDN
服务器一样,就说明解析生效。
然后再将域名填入到输入框,如:cdn.com
,不能带http://
或https://
,多域名使用英文|
分开,如:1.cdn.com|2.cdn.com|3.cdn.com
。
设置防盗链白名单
直接在输入框输入白名单域名,一行一个域名,支持泛域名,如*.example.com
,开头不要包含http://
或https://
,末尾不要带/
。
设置后,只有白名单的域名可以使用CDN
的M3U8
、图片等链接,其它网站使用均会返回403
无权限。
修改缓存规则
目前只能设置自动清理多久未用的缓存
和不缓存M3U8
选项,缓存时间可根据服务器硬盘进行适当调整,如果你在EFV
开启过时间戳防盗链功能,并通过该CDN
播放M3U8
,则需开启该功能,这样能完美兼容防盗链功能。
清空指定缓存
目前可指定M3U8
、图片等类型文件或全部文件,根据自己需求进行清空。
相关说明
单台CDN使用
如果你就一台CDN
,可以直接将CDN
域名替换EFV
域名,进行m3u8
、图片等资源访问;如使用苹果CMS
等采集功能,可将CDN
域名填入到转码设置
的域名设置
,这样采集接口里面的M3U8
等资源的域名会变成CDN
域名,再入库到相关CMS
。
多台CDN使用
目前CDN
为单节点,所以只能结合线路管理
功能一起使用,即将所有CDN
域名同时填到一个线路配置,一起提供切片播放,线路管理使用教程 ⇒ 传送门。
然后选出其中一台CDN
域名提供M3U8
,截图等使用,播放视频的时候,会从多个CDN
域名请求切片,即可以将所有CDN
同时用上。
2 - cdn其它用法及缓存清理
接口用法
该cdn
除了加速切片,还可以用作一个图片云处理服务器,直接处理任何的图片地址,并将图片转换为webp
格式缓存到本地服务器,体积极小,加载极快,也可直接通过该接口处理调用其它图片。
云处理服务接口/api
,调用示例:
https://imageserver.querydata.org/api?url=https://wmdb.querydata.org/movie/poster/no-poster.jpg&width=200&format=webp
#参数详解
url为需要加速处理的图片地址,且服务器必须可以正常请求该图片域名
width和height参数为海报长宽,至少需要存在一个,当仅存在其中一个时,则会保留图片宽高比自动处理!
format为返回类型,支持jpg、png和webp,推荐使用webp,程序会判断浏览器是否支持webp,支持webp返回webp,不支持返回jpg!webp加载实在太快了!
清除缓存文件
有时候我们想清空节点服务器缓存,这里分2
部分操作,清楚缓存文件和缓存数据库表。
先停止节点服务器
首先使用SSH
客户端,比如Xshell
软件,登录服务器,再使用命令:
pm2 kill
删除缓存文件
比如我节点服务器目录为/home/cdn-node
,删除/home/cdn-node/public/tmp
目录里全部文件即可,可使用命令:
find /home/cdn-node/public/tmp -type f -delete
删除缓存数据库表
使用命令:
mongo efvcdn --eval "db.files.deleteMany({})"
最后输出true
则删除成功,然后使用ctrl + d
退出即可。
全部操作完成后,使用命令重新启动节点:
#进入源码目录
cd /home/cdn-node
#环境生效
source /etc/profile
#启动程序
pm2 start ecosystem.config.js --env production