Skip to content

使用指南

阿里云国际版渠道商: ECS 部署 Node.js 教程 从服务器购买到实战建站

一、教程目标

本教程旨在指导开发者在阿里云国际版 Elastic Compute Service (ECS) 上完成 Node.js 环境从零部署。内容包含服务器初始化、NVM 多版本 Node 环境搭建、项目代码部署、PM2 进程守护、安全组配置、反向代理最佳实践,帮助你的 Node 应用在公网稳定对外提供服务。

二、前置条件

  1. 阿里云国际站账号准备部署前需拥有状态正常的阿里云国际版账号,国际站注册一般需要国际信用卡、海外手机号。 若注册、资质、支付遇到门槛,翼龙云 / Yilongcloud 作为阿里云国际合作伙伴,可提供开户相关事项咨询。
  2. 创建并连接 ECS 实例登录控制台完成实例购买:
  • 实例规格:测试、轻量项目推荐 1 核 2G;正式业务建议 2 核 4G 及以上。
  • 操作系统:推荐 Ubuntu 22.04 / 24.04 LTS。
  • 网络配置:勾选分配公网 IPv4 地址。

计费价格以 2026 年阿里云国际控制台实时页面为准。

本地终端 SSH 连接服务器:

ssh root@<您的ECS公网IP>

重要安全提示:

不建议将 Node.js 业务端口(如 3000)直接暴露公网,最佳实践:服务监听内网0.0.0.0,安全组仅开放 80/443,使用 Nginx 反向代理对外提供访问,避免裸端口被全网扫描探测。

pm2 startup执行后会输出一段脚本,需要复制输出命令手动执行,开机自启才会真正生效,仅运行该命令不会自动完成配置。

Node 服务务必监听0.0.0.0;若只监听127.0.0.1,即便安全组放行,外部网络依旧无法访问。

按量付费 ECS 执行【停止实例】不会释放云盘,云盘继续计费;测试完毕需要选择【释放实例】彻底销毁资源。

三、基础环境初始化与 Node.js 安装

更新系统软件包

apt update && apt upgrade -y

使用 NVM(Node Version Manager)管理 Node 版本,方便多版本切换。

提示:nvm 版本会持续更新,可以替换为官方最新脚本链接。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

source ~/.bashrc

安装 Node.js LTS 版本(示例 v20)

nvm install 20

验证安装

node -v

npm -v

正常输出版本号即安装成功。

排障:新开 SSH 终端执行 node 提示 command not found:执行source ~/.bashrc加载 nvm 环境变量。

四、项目代码上传与依赖安装

三种常用代码上传方式

  1. Git(推荐):适合版本仓库项目
  2. SCP/SFTP:适合少量本地文件上传
  3. FTP:可视化操作,需要额外部署 FTP 服务

以 Git 方式部署为例:

apt install git -y

git clone <你的项目仓库地址>

cd <项目目录>

npm install

私有仓库注意:服务器需要配置 SSH 密钥,否则无法拉取私有代码仓库。

五、使用 PM2 配置后台常驻进程

SSH 断开连接后程序会终止,使用 PM2 做进程守护、崩溃自动重启、开机自启。

全局安装 PM2

npm install pm2 -g

启动项目,入口文件以app.js举例

pm2 start app.js –name “my-node-app”

执行pm2 status,status 状态显示online代表运行正常。

设置开机自启(Ubuntu systemd 环境)

pm2 save

pm2 startup

重点:执行pm2 startup后终端会输出一条命令,复制输出的命令手动执行,开机自启功能才会真正生效。

常用运维命令

pm2 logs my-node-app   # 查看项目运行日志,排查报错

pm2 restart my-node-app

pm2 stop my-node-app

安全建议:生产环境尽量不要直接使用 root 账号运行业务,建议新建普通 Linux 用户运行 Node 服务。

六、网络安全与端口配置最佳实践

❌不推荐:直接安全组放行 3000 端口对 0.0.0.0/0 开放,容易被全网扫描攻击。 ✅推荐方案:Node 服务监听0.0.0.0:3000,安全组只放行 80、443,部署 Nginx 反向代理转发到本地 3000,对外走标准 HTTP/HTTPS 端口。

  1. ECS 安全组入方向至少放行
  • 22(SSH 远程登录,建议限制来源 IP,不要 0.0.0/0)
  • 80(HTTP)
  • 443(HTTPS)
  1. 系统防火墙检查,Ubuntu ufw

ufw status

# 如果开启防火墙,放行80/443

ufw allow 80/tcp

ufw allow 443/tcp

Nginx 反向代理简要配置思路

安装 nginx,配置站点,将公网 80/443 请求转发到本地127.0.0.1:3000,同时可配置 SSL 证书实现 HTTPS 访问。

七、访问验证

配置完 Nginx 反向代理后,浏览器访问服务器公网 IP;

若直接测试裸端口,务必确认代码监听0.0.0.0,仅监听127.0.0.1外部无法访问。

八、常见问题排障(FAQ)

Q1:NVM 安装完成,新开 SSH 终端输入 node 提示找不到命令? A:nvm 安装脚本修改.bashrc,执行source ~/.bashrc加载环境变量即可;部分极简镜像需要手动把 nvm 环境变量写入配置文件。

Q2:PM2 设置开机自启,服务器重启后项目不会自动启动? A:pm2 startup输出的脚本命令必须手动复制执行,再执行pm2 save保存进程列表,否则开机自启不生效。

Q3:安全组端口已经放行,外部依旧访问不到 Node 服务? A:依次排查三点:①项目是否监听0.0.0.0,不是127.0.0.1;②Ubuntu 系统 ufw 防火墙是否放行端口;③优先使用 Nginx 反向代理,避免直接暴露业务端口。

Q4:Git 克隆私有仓库失败? A:ECS 服务器需要配置 SSH 密钥并添加到代码仓库,否则无法拉取私有项目代码。

Q5:测试完成,如何清理按量 ECS 资源避免持续扣费? A:仅在系统内关机 / 控制台【停止实例】,云盘依旧会计费;需要控制台选择【释放实例】,勾选随实例释放 EIP、数据盘;另外单独清理快照、未绑定 EIP,避免遗留计费。

九、费用与资源清理

按量付费实例精确到秒计费。测试结束后,请检查并清理以下项:
云盘:确认无遗留的按量付费数据盘。
弹性公网 IP:释放未绑定的独立 EIP。
快照:手动删除不再需要的系统快照。

文章标签