Appearance
部署
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端口号,默认会读取环境变量p,如未传递将使用框架内置端口rocess.env.PORT 7001。--daemon是否允许在后台模式,无需nohup。若使用 Docker 建议直接前台运行。--env=prod框架运行环境,默认会读取环境变量p, 如未传递将使用框架内置环境rocess.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
2
3
4
5
6
7
8
9
path,port,hostname 均为 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
2
- 你也可以直接通过
ps -eo "pid,command" | grep -- "--title=egg-server"
1
来找到 master 进程,并 kill 掉,无需 kill -9。