背景:
easy-mock 是常用的mock数据网站, 但是随着用户越来越多,easy-mock的接口响应速度有点时候会很慢(也跟本地网络环境有关),而且接口也不稳定,时不时就挂了。。。
需求:
公司里有一台专门搭建内网服务器的机子,供开发者使用,所以想把easy-mock部署到本地,这样接口的稳定性和响应速度得到了保证,而且对团队开发也很有帮助。
实施:
首先先看easy-mock本地部署的官方介绍,github.com/easy-mock/e… 官网介绍的步骤,大致分为以下几步:
- 安装 node(>=v8.9) & MongoDB(>=v3.4) & Redis(>=v4.0)
- 安装 easy-mock,更改配置文件
- 启动 easy-mock,测试项目是否可以正常启动,能的话就可以先 Ctrl + C了
- 启动 MongoDB 和 Redis
- npm run build,然后用 PM2 启动 app.js
第一步-安装node
推荐使用nvm版本管理和nrm下载源管理,这里不多说了。
第二步-安装MongoDB
- win版MongoDB安装教程
- MongoDB配置环境变量里面写的不清楚,我在这里重写下:
MONGO_HOME = C:\Program Files\MongoDB\Server\3.4\bin
Path = %MONGO_HOME%
- 推荐使用Robo 3T 可视化工具
第三步-安装redis
可以直接从 redis.io/download 下载安装包;
打开一个 cmd 窗口,进入切换到redis安装目录:
redis-server.exe redis.windows.conf
把redis加入到windows服务中去
redis-server.exe --service-install redis.windows.conf --loglevel verbose
cmd下启动服务
redis-server --service-start
常用Redis命令:
- 卸载服务:
redis-server --service-uninstall - 开启服务:
redis-server --service-start - 停止服务:
redis-server --service-stop
第四步-安装easy-mock
最后要安装的就是 easy-mock,git clone 下来,
然后 npm install,
安装依赖,npm run dev启动项目,config/default.json 可以自定义的配置,当然不配置倒也没关系,easy-mock会自动使用 MongoDB 和 redis,不需要其他操作。easy-mock 会默认启动在 7300 下面,打开服务器的ip+port,查看 easy-mock 是否正常启动,正常启动了说明安装阶段大功告成!
{
"port": 7300, //easymock项目启动的端口
"host": "localhost", //这里改成localhost,测试时0.0.0.0 报错了
"pageSize": 30,
"proxy": false,
"db": "mongodb://localhost/easy-mock", // 不需要自己新建数据库,在启动的easymock新建接口即可
"unsplashClientId": "",
"redis": {
"port": 6379, //redis端口
"host": "localhost"
},
"blackList": {
"projects": [], // projectId,例:"5a4495e16ef711102113e500"
"ips": [] // ip,例:"127.0.0.1"
},
"rateLimit": { // https://github.com/koajs/ratelimit
"max": 1000,
"duration": 1000
},
"jwt": {
"expire": "14 days",
"secret": "shared-secret"
},
"upload": {
"types": [".jpg", ".jpeg", ".png", ".gif", ".json", ".yml", ".yaml"],
"size": 5242880,
"dir": "../public/upload",
"expire": {
"types": [".json", ".yml", ".yaml"],
"day": -1
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
第五步-部署阶段
- 全局安装pm2
npm install pm2 -g
- 编译easy-mock文件
npm run build
- 启动
cross-env NODE_ENV=production pm2 start app.js --name easymock
- 查看所有服务
pm2 list
- 访问
localhost:7300
- 停止
pm2 stop easymock
- 杀死进程
pm2 kill easymock
第六步-windows下配置pm2开机自动开启服务
- 安装并配置pm2-windows-service
npm i -g pm2-windows-service
- 添加.pm2的系统环境变量
PM2_HOME=C:\Users\zhtop.pm2(路径默认在当前用户下的.pm2)
- 以管理员权限打开新的cmd命令行窗口,执行以下命令来安装服务
pm2-service-install
- 提示
Perform environment setup ?选n, 继续,此时、 PM2服务已安装成功并已启动, 可以通过[win + r]-[ services.msc]来查看,服务名称为PM2