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
。