云服务器 ECS 部署next项目

环境要求

操作系统: Alibaba Cloud Linux 3.2104 LTS 64位
web服务器: Nginx
应用容器: Docker

前置准备

1.安装git

  1. 执行 yum install git -y 安装 git。

  1. 执行 git --version 查看 git 版本。

2.安装Node.js

  1. 克隆 nvm 源码:使用国内的 Gitee 镜像,将 nvm 克隆到 ~/.nvm 目录,并检出最新版本
1
git clone https://gitee.com/mirrors/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

  1. 依次运行以下命令,配置NVM的环境变量。
1
2
sh -c 'echo ". ~/.nvm/nvm.sh" >> /etc/profile'
source /etc/profile

  1. 使用 NVM 安装 Node.js
    执行 nvm install --lts 安装最新 LTS 版本的 Node.js。

  2. 查看 Node/NPM 版本
    执行 node --version & npm --version 查看 Node.js 版本。

3.PM2 安装

  1. 执行 npm install pm2 -g 安装 PM2。用 -g 装到全局,这样在服务器任何目录下都能直接用 pm2 命令。‌‌

  2. 执行 pm2 --version 查看 PM2 安装结果。

部署next项目

  1. 复制next项目代码到云服务器, 如 /var/next 目录(需自行创建目录)

  2. 进入项目目录,使用 npm install 安装依赖

  3. 如果项目不是部署在根目录,需要添加 bashPath 参数。

1
2
3
4
5
6
7
8
9
import type { NextConfig } from "next";

const nextConfig: NextConfig = {
/* 假设部署到 www.example.com/next 子路径 */
basePath: "/next",
...
};

export default nextConfig;
  1. 使用 npm run build 打包项目

  2. 使用 pm2 start npm --name 'my-next-app' -- start 启动项目
    这个命令的意思是:以 npm 作为脚本入口,把 --name 后面的名字作为应用名,并将 start 作为参数传给 npm 来执行 。如果你想指定端口,可以写成 pm2 start npm --name "my-next-app" -- start -- -p 8080。

  3. 执行 pm2 logs my-next-app 或 curl http://localhost:3000 查看项目状态,确认项目是否启动成功。如果 curl 命令返回 HTML 内容,说明 Next.js 已经在监听并正常响应。

  4. 执行 pm2 save & pm2 startup
    pm2 save 会把当前管理的所有进程信息存到 ~/.pm2/dump.pm2,不保存的话,服务器一重启,PM2 管理的进程就全没了.
    pm2 startup 会把 PM2 注册成系统服务,开机时自动执行 pm2 resurrect 恢复之前保存的进程。‌‌

配置Nginx

  1. 假设 Next.js 跑在 localhost:3000/next,修改 Nginx 配置文件,添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 所有 /next/ 开头的请求转发给 Next.js
location /next/ {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;

# 支持 WebSocket(SSR/HMR 需要)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 透传必要头信息
proxy_set_header Host $host;
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;

# 避免后端响应被缓冲导致流式/SSR 卡顿
proxy_buffering off;
}
  1. 重启 Nginx 服务
    执行 nginx -s reload 重启 Nginx 服务。

云服务器 ECS 部署next项目
https://www.my-web.cn/aliyun/next/
发布于
2026年9月20日
许可协议