打包部署
执行npm run build打包命令后会生成一个.nuxt的文件夹,首次部署需要在宝塔上传入如下几个文件,并且打开终端下载依赖。之后部署正常情况没有修改assets、plugins、static、nuxt.config.js、package-lock.json、package.json里面的内容,每次打包只需要上传.nuxt文件上去即可(部署完需要重启pm2进程)
# 拉依赖
npm i
# Java打包
# Java生产环境
# npm run java:prod
# Java测试环境
# npm run java:test
# PHP打包
# PHP生产环境
npm run php:prod
# PHP测试环境
#npm run php:test
打包之后,将1-9打包上传到服务器指定文件夹
.
├── 1、.nuxt
├── README.md
├── api
├── app
├── 2、assets//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── babel.config.js
├── components
├── ecosystem.config.js
├── 9、env.js
├── jsconfig.json
├── layouts
├── 6、node_modules //如果不想在服务器下载则这个包也可以一起打包上传到服务器【如果服务器下载则非必须】
├── 3、nuxt.config.js//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 7、package-lock.json //若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 8、 package.json //若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── pages
├── 4、plugins//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 5、static//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── store
├── utils
└── yarn.lock
第一次部署服务器端启动:
# 请在文件上传路径执行以下命令!也就是与.nuxt同级的目录!
# 服务器安装 pm2
npm install pm2 -g
# JAVA 刚刚启动的进程,服务启动成功后有个地址,需要在域名下做代理,即可完成部署
# pm2 delete java-mall
# pm2 start npm --name "java-mall" -- run java:ps
# PHP 刚刚启动的进程,服务启动成功后有个地址,需要在域名下做代理,即可完成部署
pm2 delete laike-mall
pm2 start npm --name "laike-mall" -- run php:ps
pm2 save
非第一次部署:
更改了其中内容后都需要重启pm2服务,命令 pm2 restart 0 (0是需要重启的序号)
#### 查看服务列表
[root@java java.web.houjiemeishi.com]# pm2 list
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ mall │ fork │ 84 │ online │ 0% │ 55.9mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App nuxt-pcsc differs. Type 'pm2 save' to synchronize.
# 重启指定服务编号
[root@java java.web.houjiemeishi.com]# pm2 restart 0
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [0](ids: [ '0' ])
[PM2] [mall](0) ✓
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ mall │ fork │ 85 │ online │ 0% │ 19.8mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App nuxt-pcsc differs. Type 'pm2 save' to synchronize.
启动之后可以直接暴漏端口用ip:port访问 ; 或者通过nginx 配置代理 ip:port 来访问。
location /pc {
proxy_pass http://npm start启动时候控制台出来的ip:端口; //例如:proxy_pass http://172.21.125.47:8081;
}
PM2 是一个进程管理工具,它可以帮助我们管理 Node.js 进程。PM2 可以监控应用程序并自动重启它们,也可以在集群模式下负载均衡进程。除此之外,PM2 还提供了很多有用的功能,比如日志管理、进程监控、应用程序部署等。
pm2基本用法:
1启动应用程序
使用 PM2 启动应用程序非常简单,只需要在命令行中执行以下命令即可:
pm2 start
其中,app.js 是我们要启动的应用程序的入口文件。执行该命令后,PM2 会启动该应用程序,并在后台运行。
查看应用程序列表
使用 PM2 启动的应用程序可以通过以下命令查看:
pm2 list
该命令会列出所有使用 PM2 启动的应用程序。
停止应用程序
如果我们需要停止某个应用程序,可以使用以下命令:
pm2 stop app
其中,app 是要停止的应用程序的名称或 ID。如果我们想要停止所有使用 PM2 启动的应用程序,可以使用以下命令:
pm2 stop all
重启应用程序
如果我们需要重启某个应用程序,可以使用以下命令:
pm2 restart app
其中,app 是要重启的应用程序的名称或 ID。如果我们想要重启所有使用 PM2 启动的应用程序,可以使用以下命令:
pm2 restart all
删除应用程序
如果我们需要删除某个应用程序,可以使用以下命令:
pm2 delete app
其中,app 是要删除的应用程序的名称或 ID。如果我们想要删除所有使用 PM2 启动的应用程序,可以使用以下命令:
pm2 delete all
查看应用程序日志
使用 PM2 启动的应用程序会自动记录日志,我们可以使用以下命令查看应用程序的日志:
pm2 logs app
其中,app 是要查看日志的应用程序的名称或 ID。该命令会输出应用程序的日志,可以通过 Ctrl+C 停止查看。
访问