安装和初步使用pm2
1.pm2简介
pm2是用于nodejs服务器环境下,部署nodejs应用的守护进程管理器,比如nuxt web项目就默认使用pm2来管理。PM2 提供了生产环境中所需的自动重启、负载均衡、日志管理和集群支持等功能。
pm2在nodejs官网地址(英文版): https://www.npmjs.com/package/pm2
2.pm2的安装
安装命令: npm install -g pm2
Windows生产环境中使用 PM2 时,建议配置 PM2 为系统服务并设置跟随系统自动重启,这样不会因为服务器重启后需要手工启动。具体可以采用WinSW或者NSSM等工具实现。
pm2安装后的检查。pm2安装后,在powershell中直接输入pm2应该会没有报错,并有一些pm2相关的内容输出,这就说明安装完成了; 否则需要检查环境变量是否配置正确,可以通过 npm config get prefix 命令查看npm命令所在目录,正常路径如下,将其加入环境变量.
C:\Users\<YourUsername>\AppData\Roaming\npm
如果使用vs code运行pm2报错,但是在独立的powershell中没有报错,那就需要用管理员模式打开vs code, 然后输入以下命令允许vs code允许本地脚本。
Set-ExecutionPolicy RemoteSigned
3.为web项目创建用于pm2的配置文件: ecosystem.config.js
一般情况下,我们需要在我们的web项目(比如nuxt项目或者vue3项目)的根目录下,创建一个名为ecosystem.config.js的项目配置文件,用于pm2对该项目进行配置和管理, 其内容可以如下:
module.exports = {
apps: [
{
name: 'app1',
script: './app1.js',
instances: 'max', // 使用所有可用的 CPU 核心
exec_mode: 'cluster', // web应用建议使用这个模式
env: {
NODE_ENV: 'development',
PORT: 3001
},
env_production: {
NODE_ENV: 'production',
PORT: 81
}
} ]
};
4.pm2常见命令
4.1.启动应用
pm2 start ecosystem.config.cjs
4.2.查看日志
pm2 logs // 查看pm2的日志
pm2 show <app_name> // 查看app内部日志
4.3.检查应用的运行状态
pm2 status
4.4.实时监控应用的运行
pm2 monit // 这个功能挺棒的,可以实时查看pm2应用的清单,看到其内存/CPU等,还可以上下选择每个应用的输出信息
4.5.pm2项目的部署
Windows环境下可以采用WinSW+bat文件的方式部署pm2为windows服务,除了WinSW,还有NSSM,FireDaemon等其他工具.
Linux环境下部署可以采用比如systemd等方式.
参考资料
1.《通义千问官网》, https://tongyi.aliyun.com/qianwen
2.《PM2中文网》, https://pm2.fenxianglu.cn
3.《PM2网》, https://pm2.node.org.cn/
4.《nodejs官网》, https://www.npmjs.com/package/pm2