egg+pm2配置线上部署环境

最近在写egg后台项目,部署到线上环境的时候想用pm2进程管理器来进行配置,查阅了一翻资料设置通了,记下来其他人有用到的可以拿去

在egg项目的根目录定义启动文件
// server.js
const egg = require('egg');

const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
  workers,
  baseDir: __dirname,
});

这样,我们就可以通过 PM2 进行启动了(本次启动在egg项目的根目录)

pm2 start server.js --name test
创建并配置pm2配置文件

pm2.config.js,配置里边可以配置项目名,执行文件,实例个数,内存限制,日志输出,重启次数,监听重启等

module.exports = {
	apps: [
		{
			name: '智能后端接口', // 项目名
			script: './server.js', // 执行文件
			cwd: './', // 根目录
			args: 'one two', // 传递给脚本的参数
			interpreter: '', // 指定的脚本解释器
			interpreter_args: '', // 传递给解释器的参数      //
			exec_mode: 'fork', // 应用启动模式,支持fork和cluster模式
			instances: 1, // 应用启动实例个数,仅在cluster模式有效 默认为fork;或者 max
			max_memory_restart: '1G', // 最大内存限制数,超出自动重启
			error_file: './logs/pm2/error.log', //错误输出日志
			out_file: './logs/pm2/out.log', //日志
			merge_logs: true, // 设置追加日志而不是新建日志
			log_date_format: 'YYYY-MM-DD HH:mm:ss', // 指定日志文件的时间格式
			min_uptime: 1000, // 应用运行少于时间被认为是异常启动
			max_restarts: 30, // 最大异常重启次数,即小于min_uptime运行时间重启次数;
			autorestart: true, // 默认为true, 发生异常的情况下自动重启
			cron_restart: '', // crontab时间格式重启应用,目前只支持cluster模式;
			restart_delay: 60, // 异常重启情况下,延时重启时间      //
			watch: false, // 是否监听文件变动然后重启      //
			ignore_watch: [
				//   // 不用监听的文件      //
				'node_modules', //
				'logs', //
				'news', //
				'run', //
				'test', //
				'typings', //
				'pm2.config' //
			],
			env: {
				NODE_ENV: 'development'
			},
			env_production: {
				NODE_ENV: 'production'
			}
		}
	]
};

此时可以 pm2 start pm2.config.js,就可以在pm2 list 里边看到你的项目的情况

这是我配置好的项目代码,大家如果用的话可以去下载来看看
https://github.com/jameding/eggjs_cli

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值