YApi是去哪儿移动架构组开源的API管理系统,之前使用码云上开源的CrapApi。
一、准备工作
1.1 环境
环境要求:
- nodejs(7.6+)
- mongodb(2.6+)
二、部署nodejs
部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。
获取资源
安装
<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保存。
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 安装**
image image填写完信息后,点击“开始部署”。(大概等待1分钟)
image image退出当前状态
CTRL + C
** 4.2 修改配置**
这里我们不急着根据提示进行启动,有些参数我们可以通过修改配置达到。
修改config.json
<pre>vim /root/my-yapi/config.json</pre>
修改下面的内容(邮箱可以不用163的),wq保存。
** 4.3 启动**
切换到部署目录下
<pre>cd /root/my-yapi</pre>
启动服务
<pre>node vendors/server/app.js</pre>
image五、部署Supervisor
Supervisor是守护进程服务,在没有守护进程之前存在一些问题:
- 应用程序运行在当前终端发起的子shell中,hangup信号中断后会导致应用退出,我们不可能在长期使用的环境中用一个终端去做长连接。
- 当服务器重启后,还是需要人工连上服务器启动服务。
- 进程出现意外终止,等人为发现再连上去开启,这样的反应显然已经慢了。
5.1 安装
<pre>yum install python-setuptools -y
easy_install supervisor</pre>
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 进程则代表运行成功。
image5.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>
参考资料: