本地部署(内网部署)easy-mock

995 阅读3分钟

背景:

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

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