nuxt2.x-app部署
🧱 一、首次部署(Nuxt 2)
假设你的项目路径是:
bash
/var/www/nuxt-app
1️⃣ 拉取代码并安装依赖
bash
cd /var/www
git clone https://github.com/yourname/your-nuxt-project.git nuxt-app
cd nuxt-app
npm install
2️⃣ 构建生产版本
bash
npm run build
3️⃣ 创建 PM2 配置文件(推荐)
在项目根目录创建文件: /var/www/nuxt-app/ecosystem.config.js
内容如下 👇
js
module.exports = {
apps: [
{
name: 'nuxt-app',
cwd: '/var/www/nuxt-app', // 项目路径
script: 'npm',
args: 'run start', // 启动命令
env: {
NODE_ENV: 'production',
HOST: '0.0.0.0',
PORT: 3000
}
}
]
}
🚀 二、用 PM2 启动项目
在项目目录执行:
bash
pm2 start ecosystem.config.js
然后查看是否启动成功:
bash
pm2 ls
pm2 logs nuxt-app
看到如下信息说明启动成功:
csharp
0|nuxt-app | Listening on: http://0.0.0.0:3000
🔁 三、代码更新与重新部署
每次更新只需执行以下命令 👇
bash
cd /var/www/nuxt-app
git pull
npm install # 如果依赖更新
npm run build
pm2 restart nuxt-app
✅ 无需重新 pm2 start,只需 pm2 restart。
⚙️ 四、Nginx 反向代理(可选但推荐)
配置一个反向代理,让用户通过域名访问。
bash
sudo nano /etc/nginx/sites-available/nuxt-app.conf
写入:
nginx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
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:
bash
sudo ln -s /etc/nginx/sites-available/nuxt-app.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
🔐 五、可选:配置 HTTPS(Let's Encrypt)
bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
🔁 六、开机自启
让 PM2 和 Nuxt 自动启动:
bash
pm2 startup
pm2 save
🧰 七、常用 PM2 命令总结
| 命令 | 说明 |
|---|---|
pm2 start ecosystem.config.js |
启动应用(要切换到项目目录) |
pm2 restart nuxt-app |
重启 |
pm2 stop nuxt-app |
停止 |
pm2 delete nuxt-app |
删除 |
pm2 ls |
查看运行列表 |
pm2 logs nuxt-app |
查看日志 |
pm2 save |
保存当前状态 |
pm2 startup |
设置开机自启 |
✅ 七、快速部署流程(以后更新)
以后更新只需要:
bash
cd /var/www/nuxt-app
git pull
npm install
npm run build
pm2 restart nuxt-app