宝塔面板PM2部署nuxt SSR项目
- 2026-03-25
- 阅读:6
打包项目
# npm
npm run build
# pnpm
pnpm run build
# yarn
yarn build
# bun
bun run build
上传Nuxt代码
上传Nuxt打包好的静态文件

1 安装 PM2
npm install -g pm2
2 创建 PM2 生态文件(可选)
为了更方便地管理你的 Nuxt 3 应用,可以创建一个 PM2 生态文件(ecosystem.config.js)。这个文件可以定义应用的启动配置,比如环境变量、实例数量等。
在项目根目录下创建 ecosystem.config.js 文件,内容如下:
// ecosystem.config.js 完整配置(复制即用)
module.exports = {
apps: [
{
name: 'nuxt3-project', // 你的项目名称(自定义)
exec_mode: 'cluster', // 集群模式,多核CPU推荐;单机用 'fork' 即可
instances: 'max', // 集群模式下启动CPU核心数的进程数;fork模式写 1
script: './.output/server/index.mjs', // Nuxt3打包后的服务入口文件,固定路径!
port: 3000, // ✅ 核心配置:指定你的自定义端口(比如3000,可改成任意端口如3001/8080)
env: {
NODE_ENV: 'production', // 生产环境
PORT: 3000 // ✅ 关键:必须同步配置 PORT 环境变量,和上面的port值一致
},
// 可选优化配置
max_memory_restart: '1G', // 内存占用超过1G自动重启,防止内存泄漏
log_date_format: 'YYYY-MM-DD HH:mm:ss', // 日志时间格式
out_file: './logs/out.log', // 正常日志输出
error_file: './logs/err.log' // 错误日志输出
}
]
}
3 使用 PM2 启动 Nuxt 3 应用
使用以下命令通过 PM2 启动你的 Nuxt 3 应用:
pm2 start ecosystem.config.js
或者通过PM2命令直接启动运行(极简,适合临时启动):
# 方式A:基础命令行启动,指定端口 3000(推荐)
npm run build && pm2 start .output/server/index.mjs --name nuxt3-project -- env PORT=3000
# 方式B:带集群模式的命令行启动,指定端口 3000
npm run build && pm2 start .output/server/index.mjs -i max --name nuxt3-prod -- env PORT=3000
- -i max :开启集群模式,自动适配 CPU 核心数
- --name xxx :给进程命名,方便后续管理
- -- env PORT=xxx :核心,注入端口环境变量,指定自定义端口
4 管理 PM2 进程
PM2 提供了一系列命令来管理你的应用:
查看应用状态:
pm2 list
停止应用:
pm2 stop nuxt3-app
或者
pm2 stop ./ecosystem.config.js
可选:停止当前所有PM2进程(比如你的nuxt3项目)
pm2 stop all
配置 Nginx(可选)
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000; # 与 PM2 配置的端口一致
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
然后重启 Nginx:
sudo systemctl restart nginx

部分评论