app的api接口搭建教程

app的api是一个单独中转加速EFV数据的应用,可以使用户更快获取数据,使APP体验更好。

appapi接口是单独搭建的,主要目的是可以加速app的读取,从而使app能够更快的读取相应的数据。

大致原理就是,我们将api接口搭建到一个网络好的vps里,该接口会从EFV高级版读取全部信息,并缓存下来,然后会被app读取,也就是api接口的服务器网络越好,app读取越快。

安装api

提示:api可安装到任何低配置服务器,且不建议和转码服务器安装在一起,不然就失去意义了。

系统要求:CentOS 7+Debian 8+Ubuntu 16+AlmaLinux 8+Rocky Linux 8+

友情提示

如果你的服务器在中国大陆以外,包括中国香港,中国台湾,建议先安装BBR,可优化TCP连接,尽可能让用户流畅的观看视频。

如果你是CentOS 7系统,建议BBR在新装系统的服务器上安装,毕竟超小概率会造成换内核访问不了服务器。

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

wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
chmod 755 /opt/bbr.sh
/opt/bbr.sh

该脚本会自动给你更换BBR内核,并开启BBRCentOS 7系统安装完成后需要重启服务器,其它系统不需要。

如果第一行命令出现wget: unable to resolve host address报错,则解决方法 ⇒ 传送门

开始安装

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

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

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

Enter运行,直到脚本运行结束,期间会给你安装所有环境。

编辑主要配置文件

如果我的安装目录为/home/efvapp-api,则配置文件为/home/efvapp-api/config.js,在SSH客户端使用命令:

vi /home/efvapp-api/config.js

首先按一下键盘的i键,进入编辑模式,这时候可以使用键盘进行编辑,编辑代码详解如下:

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数据库密码,不用修改,默认即可
}

全部编辑好了后,按一下键盘的esc键退出编辑模式,接下来输入英文:wqenter保存退出。

最后如果你不是很会命令行,依然不会修改,可以使用FTP软件或宝塔文件管理,找到该文件后手动修改即可。

启动接口

使用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个已发布的电影,不然接口会没数据。

推荐后,/api/movies接口如果显示相关数据,则安装成功;如果一直在读取,且读取不出数据,则可运行命令:

#将下面命令一起复制粘贴进SSH运行
source /etc/profile
cat <<EOF > createdb
use efvapp
db.createUser( { user: "efvapp", pwd: "efvapp", roles: [ { role: "readWrite", db: "efvapp" } ] } )
EOF
mongo<createdb && rm -rf createdb
pm2 reload all

操作后可再试试访问接口,最后访问地址就是服务器ip:3010,接下来要正常使用需要绑定一个域名,绑定教程 ⇒ 传送门,反代地址修改为127.0.0.1:3010即可。

当然你有宝塔的话,可以直接使用宝塔添加域名,并设置反向代理,URL填入https://127.0.0.1:3010