參考文章:內網搭建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
}