Linux CentOS 部署 YApi 开源API管理系统

YApi是去哪儿移动架构组开源的API管理系统,之前使用码云上开源的CrapApi。

一、准备工作

1.1 环境

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

环境要求:

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

二、部署nodejs

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

获取资源

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

安装

<pre>yum install -y nodejs</pre>

查看node版本

<pre>node -v</pre>

image

查看npm版本

<pre>npm -v</pre>

image

三、部署mongodb

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

3.1 添加yum源

修改文件mongodb-3.4.repo

<pre>vim /etc/yum.repos.d/mongodb-3.4.repo</pre>

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

<pre>[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</pre>

3.2 安装

<pre>yum install -y mongodb-org</pre>

3.3 禁用selinux

image

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

修改config文件

<pre>vim /etc/selinux/config</pre>

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

重启OS

<pre>reboot</pre>

** 3.4 关闭防火墙**

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

关闭,并取消开机启动

<pre>systemctl stop firewalld
systemctl disable firewalld</pre>

** 3.5 启动**

<pre>systemctl start mongod</pre>

** 四、部署YApi**

** 4.1 安装**

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

image

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

image

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

image
image

退出当前状态

CTRL + C

** 4.2 修改配置**

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

修改config.json

<pre>vim /root/my-yapi/config.json</pre>

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

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

** 4.3 启动**

切换到部署目录下

<pre>cd /root/my-yapi</pre>

启动服务

<pre>node vendors/server/app.js</pre>

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

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

image

五、部署Supervisor

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

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

5.1 安装

<pre>yum install python-setuptools -y
easy_install supervisor</pre>

image

5.2 修改配置

创建目录/etc/supervisor

<pre>mkdir /etc/supervisor</pre>

创建supervisord.conf模板文件

<pre>echo_supervisord_conf > /etc/supervisor/supervisord.conf</pre>

修改文件supervisord.conf

<pre>vim /etc/supervisor/supervisord.conf</pre>

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

<pre>[include]
files = conf.d/*.conf</pre>

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

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

<pre>mkdir -p /etc/supervisor/conf.d/</pre>

修改文件YApi.conf

<pre>vim /etc/supervisor/conf.d/YApiGhost.conf</pre>

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

<pre>[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</pre>

** 5.3 启动**

根据supervisord.conf启动守护进程

<pre>supervisord -c /etc/supervisor/supervisord.conf</pre>

查看进程

<pre>ps -ef | grep YApiGhost</pre>

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

image

5.4 设置为开机启动

修改文件supervisord.service

<pre>vim /usr/lib/systemd/system/supervisord.service</pre>

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

<pre>[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 </pre>

开机启动

<pre>systemctl enable supervisord</pre>

参考资料:

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容