Egg 集成部署

如果您采用了 Egg.js 框架进行 Web 开发,那么可以采用 Egg 框架提供的插件来进行部署。

  • 全局安装方式参考自助式部署 runtime

  • 有时候,同机会部署多个项目,期望多版本共存时,则可以把 runtime 安装到当前项目:

npm i nodeinstall -g
nodeinstall --install-alinode ^3

nodeinstall 会把对应版本的 alinode 安装到项目的 node_modules 目录下。

注意:打包机的操作系统和线上系统需保持一致,否则对应的 runtime 不一定能正常运行。

注意:alinode 不支持 Windows 操作系统,开发时,请使用兼容的官方版本进行开发。

2. 安装 egg-alinode 插件

执行如下命令将 egg-alinode 依赖安装并保存到您的 Node.js 项目中:

npm i egg-alinode --save

3. 在 Egg 项目的 config/plugin.js 中启用此插件

// config/plugin.js
exports.alinode = {
  enable: true,
  package: 'egg-alinode'
};

4. 在 Egg 项目的 config/config.default.js 中添加配置

// config/config.default.js
exports.alinode = {
  server: 'wss://agentserver.node.aliyun.com:8080',
  appid: 'Node.js 性能平台给您的项目生成的 appid',
  secret: 'Node.js 性能平台给您的项目生成的 secret',
  logdir: 'Node.js 性能平台日志输出地址绝对路径,与 NODE_LOG_DIR 保持一致。如:/tmp/',
  error_log: [
    '您的应用在业务层面产生的异常日志的路径,数组,可选,可配置多个',
    '例如:/root/.logs/error.#YYYY#-#MM#-#DD#.log',
    '不更改 Egg 默认日志输出路径可不配置本项目',
  ],
  agentidMode:'IP' '可选,如果设置,则在实例ID中添加部分IP信息,用于多个实例 hostname 相同的场景(以容器为主)'
};

下面是参数含义及获取方式

  • appid: 您的应用 id,在 Node.js 性能平台 控制台中应用的 设置 页面获取

  • secret: 您的应用 secret,在 Node.js 性能平台 控制台中应用的 设置 页面获取

  • logdir: 您使用 Node.js 性能平台提供的 runtime 运行 Node.js 项目生成的日志存放地点,和启动应用时设置的环境变量 NODE_LOG_DIR 的值保持一致,以绝对路径形式提供,默认为 /tmp/

  • error_log: 您的 Node.js 项目生成的异常日志目录,Egg 在生产环境下默认会将 Web 日志输出到 $HOME/logs/ 目录下,如果您不更改 Egg 的日志输出配置,那么本字段默认即可,无需额外配置

5. 使用 Node.js 性能平台提供的 runtime 启动 Egg 应用

egg-scripts start --daemon