部署到服务器
将 Next.js 项目部署到远程服务器 (PM2 + Nginx)
部署Next.jsPM2自动化
部署到服务器
将 Next.js 项目自动部署到远程服务器,使用 PM2 管理进程。
服务器信息
- IP: 114.215.202.150
- 项目路径: /var/www/my-blog
- 进程管理: PM2
- 反向代理: Nginx
部署命令
# 1. 同步代码
scp -r app components content lib package.json package-lock.json next.config.js tailwind.config.js postcss.config.js tsconfig.json next-env.d.ts root@114.215.202.150:/var/www/my-blog/
# 2. 安装依赖并构建
ssh root@114.215.202.150 "cd /var/www/my-blog && npm install && npm run build"
# 3. 重启服务
ssh root@114.215.202.150 "cd /var/www/my-blog && pm2 restart my-blog && pm2 save"
一键部署脚本
#!/bin/bash
SERVER="root@114.215.202.150"
PATH="/var/www/my-blog"
# 同步代码
scp -r app components content lib package.json package-lock.json \
next.config.js tailwind.config.js postcss.config.js \
tsconfig.json next-env.d.ts ${SERVER}:${PATH}/
# 构建
ssh ${SERVER} "cd ${PATH} && npm install && npm run build"
# 重启
ssh ${SERVER} "cd ${PATH} && pm2 restart my-blog && pm2 save"
验证部署
# 检查服务状态
ssh root@114.215.202.150 "pm2 list"
# 检查响应
ssh root@114.215.202.150 "curl -s http://localhost:3000 | head -20"
排除文件
同步时排除以下目录:
node_modules/- 服务器单独安装.next/- 服务器单独构建.claude/- 本地配置
注意事项
- 确保本地已配置 SSH 免密登录
- 服务器需安装 Node.js、PM2、Nginx
- PM2 进程名:
my-blog - 端口: 3000 (通过 Nginx 反向代理到 80)