===============================================

2018/6/5_第2次修改                       ccb_warlock

更新说明:

2018/6/5:在4.2中增加LDAP、注册的配置信息;

增加了"六、升级YApi"的内容;

===============================================

YApi是去哪儿移动架构组开源的API管理系统,之前使用码云上开源的CrapApi,但是由于原作者很久没有更新维护且听公司开发人员说YApi功能更为强大,故进行部署。

官方文档:https://yapi.ymfe.org/documents/index.html


一、准备工作

1.1 环境

操作系统:centos7(CentOS-7-x86_64-Minimal-1708)

环境要求:

  • nodejs(7.6+)
  • mongodb(2.6+)

二、部署nodejs

部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。

# 获取资源

curl -sL https://rpm.nodesource.com/setup_8.x | bash -

# 安装

yum install -y nodejs

# 查看node版本

node -v

# 查看npm版本

npm -v


三、部署mongodb

mongodb奇数版(如3.5)是开发版本,故选择安装v3.4。

3.1 添加yum源

# 修改文件mongodb-3.4.repo

vim /etc/yum.repos.d/mongodb-3.4.repo

添加下面的内容,wq保存。

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck= 0
enabled=1

3.2 安装

yum install -y mongodb-org

3.3 禁用selinux

官方教程有提到selinux对mongodb会产生负面影响,故选择禁用。

# 修改config文件

vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled,wq保存。

# 重启OS

reboot

 3.4 关闭防火墙

由于需要做数据迁移,所以直接省事将防火墙直接关了。

# 关闭,并取消开机启动

systemctl stop firewalld
systemctl disable firewalld

 3.5 启动

systemctl start mongod

 四、部署YApi

 4.1 安装

npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server

根据提示,浏览器访问 http://部署YApi服务器的IP:9090。

填写完信息后,点击“开始部署”。(大概等待1分钟)

# 退出当前状态

CTRL + C

 4.2 修改配置

这里我们不急着根据提示进行启动,有些参数我们可以通过修改配置达到。

# 修改config.json

vim /root/my-yapi/config.json

修改下面的内容(邮箱可以不用163的),wq保存。

{
"port": "80",
"adminAccount": "yizitadmin@yizit.cn",
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": "27017"
},
"mail": {
"enable": true,
"host": "smtp.163.com",
"port": 465,
"from": "可用于发送邮件的163邮箱",
"auth": {
"user": "163邮箱",
"pass": "163邮箱对应的密码或授权码"
}
},
"ldapLogin": {
"enable": true,
"server": "ldap://你的LDAP服务器IP:389",
"baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
"bindPassword": "123456",
"searchDn": "OU=UserContainer,DC=test,DC=com",
"searchStandard": "mail"
},
"closeRegister":true
}

PS.

1. LDAP配置项(ldapLogin)

  • enable 表示是否配置 LDAP 登录,true(支持 LDAP登录 )/false(不支持LDAP登录);
  • server LDAP 服务器地址,前面需要加上 ldap:// 前缀,也可以是 ldaps:// 表示是通过 SSL 连接;
  • baseDn LDAP 服务器的登录用户名,必须是从根结点到用户节点的全路径;
  • bindPassword 登录该 LDAP 服务器的密码;
  • searchDn 查询用户数据的路径,类似数据库中的一张表的地址,注意这里也必须是全路径;
  • searchStandard 查询条件,这里是 mail 表示查询用户信息是通过邮箱信息来查询的。注意,该字段信息与LDAP数据库存储数据的字段相对应,如果如果存储用户邮箱信息的字段是 email, 这里就需要修改成 email.

2. 注册配置项(closeRegister)

  • 值为true,表示禁止用户注册
  • 值为false(缺损),表示允许注册

 4.3 启动

# 切换到部署目录下

cd /root/my-yapi

# 启动服务

node vendors/server/app.js

由于修改了配置,所以直接访问 http://部署YApi服务器的IP/login。

(ps:没有进行4.2修改配置的话是访问http://部署YApi服务器的IP:3000/login)

# 配置了LDAP服务的登录页面

# 没有配 LDAP服务的登录页面

# 由于配置了禁止注册,故tab页有也不能注册


 五、部署Supervisor

Supervisor是守护进程服务,在没有守护进程之前存在一些问题:

  1. 应用程序运行在当前终端发起的子shell中,hangup信号中断后会导致应用退出,我们不可能在长期使用的环境中用一个终端去做长连接。
  2. 当服务器重启后,还是需要人工连上服务器启动服务。
  3. 进程出现意外终止,等人为发现再连上去开启,这样的反应显然已经慢了。

 5.1 安装

yum install python-setuptools -y
easy_install supervisor

 5.2 修改配置

# 创建目录/etc/supervisor

mkdir /etc/supervisor

# 创建supervisord.conf模板文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

# 修改文件supervisord.conf

vim /etc/supervisor/supervisord.conf

增加下面的内容,wq保存。

[include]
files = conf.d/*.conf

(如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效)

# 创建目录/etc/supervisor/conf.d/

mkdir -p /etc/supervisor/conf.d/

# 修改文件YApi.conf

vim /etc/supervisor/conf.d/YApiGhost.conf

增加下面的内容,wq保存。

[program: YApiGhost]
command=node vendors/server/app.js ; 运行程序的命令
directory=/root/my-yapi ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/YApiGhost.err.log ; 错误日志文件
stdout_logfile=/var/log/YApiGhost.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

 5.3 启动

# 根据supervisord.conf启动守护进程

supervisord -c /etc/supervisor/supervisord.conf

# 查看进程

ps -ef | grep YApiGhost

如果存在YApiGhost 进程则代表运行成功。

 5.4 设置为开机启动

# 修改文件supervisord.service

vim /usr/lib/systemd/system/supervisord.service

添加下面的内容,wq保存。

[Unit]
Description=Supervisor daemon [Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

# 开机启动

systemctl enable supervisord

 六、升级YApi

YApi的升级非常容易,且不会影响用户的数据,只会更新vendors目录。

# 进入服务目录

cd /root/my-yapi

# 查看版本列表

yapi ls

# 更新到最新版本

yapi update

# yapi也支持升级到指定的版本

yapi update -v {Version}

 参考资料:

1.https://github.com/YMFE/yapi

2.https://www.cnblogs.com/acewhl/p/6638486.html

3.https://github.com/nodesource/distributions#rpm

4.https://www.cnblogs.com/acewhl/p/6638486.html

5.https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

6.https://yapi.ymfe.org/devops/index.html

centos7 部署YApi的更多相关文章

  1. Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)

    Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...

  2. [原]CentOS7部署osm2pgsql

    转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 部署Postgresql和部署PostGis请参考前两篇文章 本文主要参考GitHub上osm ...

  3. centos7 部署ssserver

    centos7 部署shadowsocks服务端 为什么要选centos7? 以后centos7 肯定是主流,在不重要的环境还是尽量使用新系统吧 centos7 的坑 默认可能会有firewall 或 ...

  4. CentOS部署yapi

    转载自 https://www.linuxidc.com/Linux/2018-01/150513.htm 在mongoDB添加yum源时,源路径有修改,原文中的路径404不可用 一.准备工作 1.1 ...

  5. (转)Centos下,Docker部署Yapi接口管理平台

    接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...

  6. 部署 YApi 接口管理服务

    安装 Node curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs 安装 MongoDB vi / ...

  7. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  8. Centos下,Docker部署Yapi接口管理平台(详细得令人发指)

    接口测试的工具很多,公司引进了接口管理平台Yapi,自己尝试直接搭建,从安装Nodejs到配置MongoDB数据库,再到安装yapi的时候,遇到浏览器打开本地服务器Ip地址后,没有显示部署内容...没 ...

  9. centos7 部署 docker compose

    =============================================== 2019/4/10_第1次修改                       ccb_warlock == ...

随机推荐

  1. nignx知识点总结

    https://segmentfault.com/a/1190000013781162

  2. java_24 FileOutputStream类和FileInputStream类

    1.OutputStream 和InputStream 输入和输出:1.参照物都是java程序来惨遭 2.Input输入,持久化上的数据---->内存 3.Output输出,内存--->硬 ...

  3. BZOJ4386[POI2015]Wycieczki / Luogu3597[POI2015]WYC - 矩乘

    Solution 想到边权为$1$的情况直接矩乘就可以得出长度$<=t$ 的路径条数, 然后二分check一下即可 但是拓展到边权为$2$,$3$ 时, 需要新建节点 $i+n$ 和 $i+2n ...

  4. [杂谈]杂谈章1 问几个JAVA问题

    1.面向对象.面向过程 区别 2.Java 如何实现的平台无关 和C/C++不同的是,Java语言提供的编译器不针对特定的操作系统和CPU芯片进行编程,而是针对Java虚拟机把Java源程序编译成称为 ...

  5. 《C#从现象到本质》读书笔记(三)第3章C#类型基础(下)

    <C#从现象到本质>读书笔记第3章C#类型基础(下) 常量以关键字const修饰.C#支持静态字段(类型字段)和实例字段. 无参属性的get方法不支持参数,而有参属性的get方法支持传入一 ...

  6. Android使用ksoap2调用C#中的webservice实现图像上传

    目录: 一. android使用ksoap2调用webservice 二. 异步调用 三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法 四. 图像传输中Base ...

  7. Rsync常见错误和问题

    五.常见问题 以下是为配置rsync时的常见问题: 问题一:@ERROR: chroot failedrsync error: error starting client-server protoco ...

  8. A - ACboy needs your help again!

    ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark th ...

  9. python模块:xml

    """Core XML support for Python. This package contains four sub-packages: dom -- The W ...

  10. powershell ParameterSet解析

    自定义PowerShell函数,在设置参数的时候中,可以将参数设置为某些情况下可选,某些条件下又设置为必选. 示例代码从网站复制的. function Connect-Somewhere { [Cmd ...