打包部署

执行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 停止查看。

访问

Copyright © www.laiketui.com all right reserved,powered by Gitbook该文件修订时间: 2025-03-05 10:35:43

results matching ""

    No results matching ""