部署
普通部署
1.0> 打包项目
nuxt build
2.0> 启动
编译后的项目包位于 .output 目录下,使用如下命令即可启动项目:
node .output/server/index.mjs
PM2部署(推荐)
PM2 是一个进程管理器,它帮助你管理和保持应用持续在线,详见官方文档:https://pm2.keymetrics.io/docs/usage/quick-start/
1.0> 全局安装PM2
npm install pm2 -g
2.0> 在项目根目录新建 ecosystem.config.js 配置文件,内容如下:
module.exports = {
apps: [
{
name: 'NuxtAppName',
exec_mode: 'cluster',
instances: 'max',
script: './.output/server/index.mjs'
}
]
}
3.0> 打包项目
nuxt build
4.0> 启动
pm2 start ecosystem.config.js --env prod
设置开机启动
1>. 使用 pm2 启动项目
pm2 start ./dist/main.js
2> 生成开机启动的命令
pm2 startup
To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/home/user1/.nvm/versions/node/v8.8.1/bin /home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2
startup systemd -u user1 --hp /home/user1
3>. 粘贴上面的命令到终端
sudo env PATH=$PATH:/home/user1/.nvm/versions/node/v8.8.1/bin /home/user1/.nvm/versions/node/v8.8.1/lib/node_modules/pm2/bin/pm2
startup systemd -u user1 --hp /home/user1
4>. 将当前pm2运行应用保存到 /home/user1/.pm2/dump.pm2 下,开机重启时pm2会读取该文件中的内容,并启动相关应用
pm2 save
常用命令
## 启动
pm2 start app_name
pm2 start app_name --watch # 当文件变化时自动重启应用
## 列出所有已启动的应用
pm2 list
## 显示每个应用程序的CPU和内存占用情况
pm2 monit
## 显示指定应用程序的所有信息
pm2 show [app-id/app-name]
## 显示应用程序的日志信息
pm2 log
pm2 log [app-id/app-name] # 显示指定应用程序的日志信息
pm2 flush # 清空所有日志文件
## 停止应用
pm2 stop all ## 停止所有应用
pm2 stop [app-id/app-name] ## 停止指定应用
## 重启应用
pm2 restart all # 重启所有应用程序
pm2 restart [app-id/app-name] ## 重启指定应用程序
## 删除
pm2 delete all # 关闭并删除所有应用
pm2 delete [app-id/app-name] # 关闭并删除指定应用
## 0秒停机重新加载(集群模式下,可以达到重启时不停止服务)
pm2 reload app.js # 重新启动所有进程,始终保持至少一个进程在运行