Skip to content
On this page

部署

9.1 部署服务器

首先当然是在你的服务器上部署好 node 服务,然后安装好。

服务器需要预装 Node.js,框架支持的 Node 版本为 >= 8.0.0。
框架内置了 egg-cluster 来启动 Master 进程,Master 有足够的稳定性,不再需要使用 pm2 等进程守护模块。
同时,框架也提供了 egg-scripts 来支持线上环境的运行和停止。

egg-scripts start --port=7001 --daemon --title=egg-server-showcase
1
  • --port=7001  端口号,默认会读取环境变量  process.env.PORT,如未传递将使用框架内置端口  7001
  • --daemon  是否允许在后台模式,无需  nohup。若使用 Docker 建议直接前台运行。
  • --env=prod  框架运行环境,默认会读取环境变量  process.env.EGG_SERVER_ENV, 如未传递将使用框架内置环境  prod
  • --workers=2  框架 worker 线程数,默认会创建和 CPU 核数相当的 app worker 数,可以充分的利用 CPU 资源。
  • --title=egg-server-showcase  用于方便 ps 进程时 grep 用,默认为  egg-server-${appname}
  • --framework=yadan  如果应用使用了可以配置  package.json  的  egg.framework  或指定该参数。
  • --ignore-stderr  忽略启动期的报错。

9.1.1 启动配置项

你也可以在  config.{env}.js  中配置指定启动配置。

javascript
// config/config.default.js

exports.cluster = {
  listen: {
    port: 7001,
    hostname: "127.0.0.1",
    // path: '/var/run/egg.sock',
  },
};
1
2
3
4
5
6
7
8
9

pathporthostname  均为  server.listen  的参数,egg-scripts  和  egg.startCluster  方法传入的 port 优先级高于此配置。
s

9.1.2 停止命令

该命令将杀死 master 进程,并通知 worker 和 agent 优雅退出。
支持以下参数:

  • --title=egg-server  用于杀死指定的 egg 应用,未传递则会终止所有的 Egg 应用。
"start": "egg-scripts start --daemon --title=${进程名称}",
"stop": "egg-scripts stop --title=${进程名称}"
1
2
  • 你也可以直接通过
ps -eo "pid,command" | grep -- "--title=egg-server"
1

来找到 master 进程,并  kill  掉,无需  kill -9

沪ICP备20006251号-1