阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7 部署 YApi

210次阅读
没有评论

共计 3294 个字符,预计需要花费 9 分钟才能阅读完成。

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

一、准备工作

1.1 环境

操作系统:CentOS 7(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

CentOS 7 部署 YApi

# 查看 npm 版本

npm -v

CentOS 7 部署 YApi

三、部署 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

CentOS 7 部署 YApi

 官方教程有提到 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 

CentOS 7 部署 YApi

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

 CentOS 7 部署 YApi

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

CentOS 7 部署 YApi

CentOS 7 部署 YApi

 # 退出当前状态

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 邮箱对应的密码或授权码 "
       }
  }
} 

 4.3 启动

 # 切换到部署目录下 

cd /root/my-yapi

 # 启动服务 

node vendors/server/app.js

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

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

CentOS 7 部署 YApi

五、部署 Supervisor

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

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

5.1 安装

yum install python-setuptools -y
easy_install supervisor

CentOS 7 部署 YApi

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 进程则代表运行成功。

CentOS 7 部署 YApi

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

参考资料:

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

 2.http://www.linuxidc.com/Linux/2018-01/150512.htm

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

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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150513.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3294字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中