接口管理平臺YApi安裝配置

環境要求
  • nodejs(7.6+)
  • mongodb(2.6+)
#安裝Node
cd /usr/local/src #https://nodejs.org/dist/v8.17.0/node-v8.17.0-linux-x64.tar.gz
wget https: / /nodejs.org/dist/v8.17.0/node -v8. 17.0 -linux-x64.tar.gz
tar zxvf node-v8. 17.0 -linux-x64.tar.gz
cp node-v8. 17.0 -linux-x64/bin/node /usr/local/bin/
cp -R node-v8. 17.0 -linux-x64/ lib / node_modules / usr / local / lib /
ln -s /usr/local/ lib / node_modules / npm / bin / npm - cli . js / usr / local / bin / npm
npm install -g pm2@latest --registry= http: / /registry.npm.taobao.org #安裝pm2模塊
npm install -g npm@latest --registry=http://registry.npm.taobao.org #安裝npm模塊
# Linux Binaries下載地址: https: / /nodejs.org/dist
 
#配置MongoDB源
cat /etc/yum.repos.d/mongodb-org.repo
[mongodb-org]
name=MongoDB Repository
baseurl=https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=0
enabled=1
gpgkey= https://www.mongodb.org/static/pgp/server-3.6.asc
 
#安裝MongoDB
yum install mongodb-org -y
#相關目錄信息
/var/lib/mongo #數據目錄
/var/log/mongodb #日誌目錄
/var/run/mongodb #PID文件目錄
 
配置遠程訪問
修改mongod.conf 文件
bindIP: 127.0.0.1
修改爲
bindIP: 0.0.0.0
關閉防火牆或把Mongodb的端口號27017加入到安全組
CentOS7關閉防火牆命令如下:
#停止firewall
systemctl stop firewalld.service
#禁止firewall開機啓動
systemctl disable firewalld.service
 
添加連接認證
use admin db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] } )
修改mongod.conf 文件
security:
authorization: enabled
 
1.以用戶管理員身份進行連接和身份驗證
驗證方式:
通過傳入用戶憑據來連接身份驗證
mongo命令使用:-u <username> -p <password> --authenticationDatabase <database>
  
切換到身份驗證數據庫(在本例中爲admin),並使用 方法進行身份驗證:
db.auth(<username>,<pwd>)
use admin
db.auth("myUserAdmin", "abc123" )
 
 
內網部署
使用我們提供的 yapi-cli 工具,部署 YApi 平臺是非常容易的。建議部署成 http 站點,因 chrome 瀏覽器安全限制,部署成 https 會導致測試功能在請求 http 站點時文件上傳功能異常。
如果您是將服務器代理到 nginx 服務器,請配置 nginx 支持 websocket。
在location /添加
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
 
 
安裝
方式一. 可視化部署[推薦]
執行 yapi server 啓動可視化部署程序,輸入相應的配置和點擊開始部署,就能完成整個網站的部署。部署完成之後,可按照提示信息,執行 node/{網站路徑/server/app.js} 啓動服務器。在瀏覽器打開指定url, 點擊登錄輸入您剛纔設置的管理員郵箱,默認密碼(ymfe.org) 登錄系統(默認密碼可在個人中心修改)。
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
...
初始化管理員賬號成功,賬號名:"[email protected]",密碼:"ymfe.org"
部署成功,請切換到部署目錄,輸入: "node vendors/server/app.js" 指令啓動服務器, 然後在瀏覽器打開 http://127.0.0.1:8090 訪問
停掉yapi server,按照如上方式啓動服務,或者通過pm2進行服務管理
 
方式二. 命令行部署
如果 github 壓縮文件無法下載,或需要部署到一些特殊的服務器,可嘗試此方法
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下載 zip 包解壓到 vendors 目錄(clone 整個倉庫大概 140+ M,可以通過 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令減少,大概 10+ M)
cp vendors/config_example.json ./config.json //複製完成後請修改相關配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安裝程序會初始化數據庫索引和管理員賬號,管理員賬號名可在 config.json 配置
node server/app.js //啓動服務器後,請訪問 127.0.0.1:{config.json配置的端口},初次運行會有個編譯的過程,請耐心等候
安裝後的目錄結構如下:
|-- config.json
|-- init.lock
|-- log
`-- vendors
    |-- CHANGELOG.md
    |-- LICENSE
    |-- README.md
    |-- client
    |-- common
    |-- config_example.json
    |-- doc |-- exts
    |-- nodemon.json
    |-- npm-debug.log
    |-- package.json
    |-- plugin.json
    |-- server
    |-- static
    |-- test
    |-- webpack.alias.js
    |-- yapi-base-flow.jpg
    |-- ydocfile.js
    `-- ykit.config.js
 
服務器管理
推薦使用 pm2 管理 node 服務器啓動,停止,具體使用方法可參考下面的教程:
cat yapi-server.json
{
"apps":
{
"name": "yapi server",
"cwd": "/usr/local/my-yapi",
"script": "node",
"args": "vendors/server/app.js",
"min_uptime": "60s",
"max_restarts": 30,
"max_memory_restart": "128M",
"watch": true
}
}
pm2 start yapi-server.json
pm2 save
pm2 startup
 
Nginx配置
cat yapi.conf
upstream yapi {
server 127.0.0.1:8090;
}
 
server {
listen 80;
server_name 192.168.1.48;
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") {
return 403;
}
 
location / {
proxy_pass http://yapi;
proxy_redirect default;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
proxy_ignore_client_abort on;
proxy_read_timeout 180;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 8 8M;
charset utf-8;
client_body_buffer_size 10M;
 
gzip on;
gzip_min_length 1000;
gzip_types text/plain text/css application/json text/xml application/xml application/xml+rss text/javascript;
}
access_log /home/wwwlogs/yapi.access.log;
error_log /home/wwwlogs/yapi.error.log;
}
 
升級
升級項目版本是非常容易的,並且不會影響已有的項目數據,只會同步 vendors 目錄下的源碼文件。
cd {項目目錄} yapi ls #查看版本號列表 yapi update #升級到最新版本 yapi update -v v1.1.0 #升級到指定版本
 
配置郵箱
打開項目目錄 config.json 文件,新增 mail 配置, 替換默認的郵箱配置
{
  "port": "*****",
  "adminAccount": "********",
  "db": {...},
  "mail": {
    "enable": true,
    "host": "smtp.163.com",    //郵箱服務器
    "port": 465,               //端口
    "from": "***@163.com",     //發送人郵箱
    "auth": {
        "user": "***@163.com", //郵箱服務器賬號
        "pass": "*****"        //郵箱服務器密碼
    }
  }
}
如何申請STMP服務器賬號和密碼可以參考下面的教程: 如何開通電子郵箱的SMTP功能
 
配置LDAP登錄
打開項目目錄 config.json 文件,添加如下字段:
 
{
  "port": "*****",
  "adminAccount": "********",
  "db": {...},
  "mail": {...},
  "ldapLogin": {
      "enable": true,
      "server": "ldap://l-ldapt1.com",
      "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
      "bindPassword": "password123",
      "searchDn": "OU=UserContainer,DC=test,DC=com",
      "searchStandard": "mail",    // 自定義格式: "searchStandard": "&(objectClass=user)(cn=%s)"
      "emailPostfix": "@163.com",
      "emailKey": "mail",
      "usernameKey": "name"
   }
}
這裏面的配置項含義如下:
  • enable 表示是否配置 LDAP 登錄,true(支持 LDAP登錄 )/false(不支持LDAP登錄);
  • server LDAP 服務器地址,前面需要加上 ldap:// 前綴,也可以是 ldaps:// 表示是通過 SSL 連接;
  • baseDn LDAP 服務器的登錄用戶名,必須是從根結點到用戶節點的全路徑(非必須);
  • bindPassword 登錄該 LDAP 服務器的密碼(非必須);
  • searchDn 查詢用戶數據的路徑,類似數據庫中的一張表的地址,注意這裏也必須是全路徑;
  • searchStandard 查詢條件,這裏是 mail 表示查詢用戶信息是通過郵箱信息來查詢的。注意,該字段信息與LDAP數據庫存儲數據的字段相對應,如果如果存儲用戶郵箱信息的字段是 email, 這裏就需要修改成 email.(1.3.18+支持)自定義filter表達式,基本形式爲:&(objectClass=user)(cn=%s), 其中%s會被username替換
  • emailPostfix 登陸郵箱後綴(非必須)
  • emailKey: ldap數據庫存放郵箱信息的字段(v1.3.21 新增 非必須)
  • usernameKey: ldap數據庫存放用戶名信息的字段(v1.3.21 新增 非必須)
重啓服務器後,可以在登錄頁看到如下畫面,說明 ladp 配置成功
 
禁止註冊
在 config.json 添加 closeRegister:true 配置項,就可 以禁止用戶註冊 yapi 平臺,修改完成後,請重啓 yapi 服務器。
{
  "port": "*****",
  "closeRegister":true
}
版本通知
(v1.3.19+ 增加)在 config.json 添加 "versionNotify": true 配置項,就可以開啓版本通知功能,默認爲 false,修 改完成後,請重啓 yapi 服務器。
{
  "port": "******",
  "adminAccount": "*****",
  "versionNotify": true
}
如何配置mongodb集羣
請升級到 yapi >= 1.4.0以上版本,然後在 config.json db項,配置 connectString:
{
  "port": "***",
  "db": {
    "connectString": "mongodb://127.0.0.100:8418,127.0.0.101:8418,127.0.0.102:8418/yapidb?slaveOk=true",
    "user": "******",
    "pass": "******"
  },
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章