全部产品
云市场

Egg 集成部署

更新时间:2018-07-25 13:20:39

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

1. 安装 runtime

  • 全局安装方式参考文档

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

    1. npm i nodeinstall -g
    2. nodeinstall --install-alinode ^3

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

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

2. 安装 egg-alinode 插件

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

  1. npm i egg-alinode --save

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

  1. // config/plugin.js
  2. exports.alinode = {
  3. enable: true,
  4. package: 'egg-alinode'
  5. };

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

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

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

  • 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 应用

  1. egg-scripts start --daemon