api接口和图片cdn搭建教程

app的api和图片cdn分别用来中转加速EFV数据和图片的应用,可以使用户更快获取相关数据。

相关介绍

api接口会从EFV读取全部信息,并缓存下来,然后提供给app读取,起一个中转作用,也就是api接口的服务器网络越好,app读取越快。

图片cdn会给你把app所有封面,截图等全部转换成体积非常小,每张图大概10kb左右的webp,可以使app图片加载极快,体验非常好。

开始安装

提示:目前脚本默认会将 api接口和图片cdn 搭建到同一服务器,推荐使用网络比较好的VPS即可。

系统要求:CentOS 8+Debian 10+Ubuntu 20.04+AlmaLinux 8+Rocky Linux 8+,且为刚重装好的系统。

使用SSH客户端,比如Xshell软件,登录服务器,再使用命令:

#下载脚本
wget --no-check-certificate -O '/tmp/efvapp-api-cdn.sh' 'https://file.efvcms.com/app/efvapp-api-cdn.sh'

#运行前请将后面1个参数修改成自己的,即源码同时安装路径/home,路径自定义,为绝对路径写法,不存在会自动创建
bash /tmp/efvapp-api-cdn.sh /home

Enter运行,直到脚本运行结束,期间会给你安装所有环境,包括BBR。如果第一行命令出现wget: unable to resolve host address报错,则解决方法 ⇒ 传送门

启动API接口和图片CDN

这里API接口和图片CDN会分开说一下启动教程,且里面涉及到的配置文件修改,可使用FTP软件或宝塔文件管理,找到指定文件后手动修改即可。

启动API接口

如果我的安装目录为/home/efvapp-api,则配置文件为/home/efvapp-api/config.js,编辑代码详解如下:

module.exports = {
  host: 'https://www.leimulamu.com',  //EFV高级版绑定域名,注意带上http://或https://,后面不带/
  rootHost: 'https://www.leimulamu.com',  //自适应M3U8域名,一般为EFV高级版绑定域名,注意带上http://或https://,后面不带/
  apiKey: 'domybestthingsisgood2',  //EFV高级版apikey,自行在转码设置处设置和查看,且需要打开api开关
  tokenkey: 'a1b2c3d4',  //随便设置或默认
  imageHost: 'https://www.leimulamu.com',  //封面、截图域名,一般为EFV高级版绑定域名,注意带上http://或https://,后面不带/
  apiHost: 'https://lmlm.zhuanma.co',  //app的api接口域名,可提示设置,最后将该域名反代绑定到api即可
  dburl: "127.0.0.1",  //mongodb数据库ip,不用修改,默认即可
  db: "efvapp",  //mongodb数据库名称,不用修改,默认即可
  dbuser: "efvapp",  //mongodb数据库用户名,不用修改,默认即可
  dbpassword: "efvapp",  //mongodb数据库密码,不用修改,默认即可
}

接下载再使用SSH客户端,继续使用命令:

#进入源码目录
cd /home/efvapp-api
#启动
pm2 start ecosystem.config.js --env production
#开机自启
pm2 save
pm2 startup

如果运行命令期间提示-bash: pm2: command not found,则需要先运行一下source /etc/profile,然重新打包即可。

启动后,可以访问服务器ip:3010/api/movies接口,注意访问之前,需要先去视频管理,推荐至少2个已发布的电影,不然接口会没数据。

启动图片CDN

如果我的安装目录为/home/cdn-node,则配置文件为/home/cdn-node/config/config.js,编辑代码详解如下:

module.exports = {
  dbUrl: "127.0.0.1",  //mongodb数据库ip,不用修改,默认即可
  db: "efvcdn",  //mongodb数据库名称,不用修改,默认即可
  dbUser: "efvcdn",  //mongodb数据库用户名,不用修改,默认即可
  dbPassword: "efvcdn",  //mongodb数据库密码,不用修改,默认即可
  apiKey: '6860e43596fd11d4ee66303d',  //apikey,自行修改,app配置的时候会用到
  efvDomain: 'http://localhost:3000',  //EFV绑定域名 或 ip:3000地址,注意带上http://或https://,后面不带/
  keeptime: 20 //图片缓存时间,单位分钟,根据硬盘大小适当调整
};

接下载再使用SSH客户端,继续使用命令:

#进入源码目录
cd /home/cdn-node
#启动
pm2 start ecosystem.config.js --env production
#开机自启
pm2 save
pm2 startup

如果运行命令期间提示-bash: pm2: command not found,则需要先运行一下source /etc/profile,然重新打包即可。

给API接口和图片CDN绑定域名

#下载脚本
wget --no-check-certificate -O '/tmp/add_caddy.sh' 'https://file.efvcms.com/app/add_caddy.sh'

#绑定cdn域名,运行前请将后面的域名改成自己的,注意提前将域名解析到CDN服务器,会自动申请免费SSL证书
bash /tmp/add_caddy.sh '1.cdn.com@127.0.0.1:3888'

#绑定api接口域名,运行前请将后面的域名改成自己的,注意提前将域名解析到CDN服务器,会自动申请免费SSL证书
bash /tmp/add_caddy.sh '1.api.com@127.0.0.1:3010'

#同时绑定api接口和cdn域名,运行前请将后面的域名改成自己的,注意提前将域名解析到CDN服务器,会自动申请免费SSL证书
bash /tmp/add_caddy.sh '1.api.com@127.0.0.1:3010|1.cdn.com@127.0.0.1:3888'

格式为域名@反代地址api接口地址为127.0.0.1:3010,图片cdn地址为127.0.0.1:3888,多个域名使用|分开,

注意绑定命令可以重复运行,且域名参数的两边单引号别漏了,每次运行都会重置绑定域名,所以请一次性绑定好所有域名。