CentOS 7 部署 YApi

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

# 查看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

 # 修改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": "[email protected]",
  "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)

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

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

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

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

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/219916.html<

(0)
运维的头像运维
上一篇2025-04-14 08:11
下一篇 2025-04-14 08:12

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注