参考文章:内网搭建yapi接口管理平台
环境准备
-
操作系统:centos 7
-
环境要求:
- nodejs 7.6+
- mongodb 2.6+
- git
安装nodejs
- 获取资源(部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。)
curl -sL https://rpm.nodesource.com/setup_8.x | bash -
- 安装
yum install -y nodejs
- 查看版本
node -v
- 查看npm版本
npm -v
安装mongodb
- 更新yum源,非必须但是更新一下无害
yum -y update
- 添加mongodb源文件,在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
touch /etc/yum.repos.d/mongodb-org.repo
- 编辑mongodb-org.repo文件
vim /etc/yum.repos.d/mongodb-org.repo
- 添加文件内容
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
这里可能退不出Vim,参考https://www.cnblogs.com/melodyjerry/p/13714705.html
- 安装mongodb
yum install -y mongodb-org
- 启动mongodb
service mongod start
- 设置开机启动
chkconfig mongod on
- 打开moMongoDB(可忽略)
/bin/mongo
- 配置远程访问
- 修改mongod.conf配置文件
vim /etc/mongod.conf
- 注释 bindIp: 127.0.0.1
#bindIp: 127.0.0.1
- 重启mongod
service mongod restart
安装git
- 官方推荐,在内网部署的时候安装git,可以根据自己所需安装
yum -y install git
搭建YApi环境
搭建YApi
- 准备环境搭建完成后,开始搭建YApi,安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
$ yapi server /usr/lib/node_modules/yapi-cli/src/utils.js:68 getVersions: async function(){ ^^^^^^^^ SyntaxError: Unexpected token function at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:549:28) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32) at tryModuleLoad (module.js:453:12) at Function.Module._load (module.js:445:3) at Module.require (module.js:504:17) at require (internal/module.js:20:19) at Object.<anonymous> (/usr/lib/node_modules/yapi-cli/src/index.js:4:15)
解决办法:将node升级到版本>7.6
-
实例截图:
yapi server
后提示:Accessing non-existent property 'cat' of module exports inside circular dependency
产生这个的原因是node的版本太高了
解决的办法很简单,卸载最新版的node v14,重新安装稳定版的node v12,这个问题就解决了
有使用宝塔的话,还需要到宝塔防火墙里放行9090端口。
部署YApi
- 执行 yapi server 启动可视化部署程序,浏览器打开提示窗口上的地址,非本地服务器,将0.0.0.0替换指定的域名或IP,进入部署页面。
- 实例截图
- 根据项目实际需要可以修改部署信息,点击【开始部署】,完成部署任务
-
部署成功截图
-
MongoDB数据库连接失败,检查是不是配置文件的ip、port出错。或者,直接
shutdown -r now
重启一下服务器,反正我就是hh。
3.根据部署日志截图上的提示信息,启动服务
启动服务:node vendors/server/app.js
浏览器打开部署日志上的访问地址http://127.0.0.1:3000就可以访问搭建的YApi工具了(非本地服务器,将127.0.0.1替换指定的域名或IP),此时YApi本地环境搭建完成
如果是阿里云ecs服务器,端口需要在安全组里开放,不然访问不了
4.pm2方式管理进程
要保证后台保持进程,需要安装pm2。
全局安装:
npm install -g pm2`
启动:
pm2 start /root/my-yapi/vendors/server/app.js --watch -i 1
这样以后就可以很方便的用pm2就行启动关闭啦~
- 通过
pm2 save
保存当前进程状态。
查看:
pm2 list
重启:
pm2 restart service/app.js
停止:
可以先通过pm2 list
获取应用的名字(--name指定的)或者进程id。
# pm2 stop app_name|app_id
pm2 stop /root/my-yapi/vendors/server/app.js
6.升级
升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件。
cd {项目目录}
yapi ls //查看版本号列表
yapi update //更新到最新版本
yapi update -v {Version} //更新到指定版本
9.nginx代理
如果您是将服务器代理到 nginx 服务器,请配置 nginx 支持 websocket。
在location /添加
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
10.禁止注册
在 config.json 添加 closeRegister:true
配置项,就可以禁止用户注册 yapi 平台,修改完成后,请重启 yapi 服务器。
{
"port": "*****",
"closeRegister":true
}