###前言:
主要详细讲述了如何通过pm2在ngnix环境上成功部署nuxt3项目,其中包含了pm2的一些常用命令,希望能对首次接触nuxt3项目的友友们有所帮助,若有不足或者错误之处,欢迎指正
一、打包nuxt3项目(打包之前检查一下生产环境是否配置)
(1)运行打包命令:
npm run build
(2)查看打包生成的 .output目录 :
二、pm2的安装及配置
(1)安装pm2(安装之前,服务器必须配置node环境)
npm i pm2 -g //需要管理员权限
(2)查看pm2是否安装及版本
pm2 -v
(3)pm2常见的命令
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 monit # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 logs [app-name] # 显示指定应用程序的日志
pm2 flush # 清空所有日志文件
pm2 stop all # 停止所有的应用程
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 reload all # 重启 cluster mode下的所有应用
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
三、文件部署配置
(1)准备一个pm2的配置文件,我这里取名叫——ecosystem.config.js,我这里让该文件和.output目录同级:
(2)将这两个文件放到ngnix环境目录里:
(3)其中ngnix的ngnix.conf文件配置如下:
http {
include mime.types;
default_type application/octet-stream;
server {
listen 3333;
server_name localhost;
server_tokens off;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Nginx-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 你的nuxt地址
proxy_pass http://127.0.0.1:3000;
}
location @router {
rewrite ^.*$ /index.html break;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
若ngnix运行成功如图:
(4)ecosystem.config.js文件配置如下:
module.exports = {
apps: [
{
name: "nuxt3项目", // 启动项目名称,随便取,一般为项目名
exec_mode: "cluster",
instances: 1, // 进程数,默认为1,如果该配置文件需要管理多个项目,可根据项目的个数更改进程数
port: "3000", // 端口,根据需要指定
script: "./.output/server/index.mjs", // 启动入口,相对于 .output 目录的路径
args: "start",
env: {
MODE: "production"
}
}
]
四、使用pm2运行项目
(1)运行项目 进入html文件夹(我这里是html)
pm2 start ./ecosystem.config.js
(2)查看项目是否被运行成功
pm2 list
如下图,若状态为“online”则表示pm2运行项目成功!
(3)使用服务器ip地址进行访问(因为我ngnix上使用的192.168.100.3333这个域名,所以可直接用这个域名进行访问)
http://192.168.18.100:3333
(4)效果图如图: