返回 Skills 列表

部署到服务器

将 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/ - 本地配置

注意事项

  1. 确保本地已配置 SSH 免密登录
  2. 服务器需安装 Node.js、PM2、Nginx
  3. PM2 进程名: my-blog
  4. 端口: 3000 (通过 Nginx 反向代理到 80)