文章详情

阿里云代充值 阿里云国际站服务器运行Nodejs教程

阿里云国际2026-04-25 12:57:06Azure顶尖云

别再对着阿里云国际站发呆了:Node.js 部署,其实比煮泡面还简单

你是不是也这样?花3分钟注册完阿里云国际站(alibabacloud.com),点开ECS控制台,盯着「Launch Instance」按钮看了5分钟,心里默念:“这按钮……按下去会不会弹出火星文警告?”
又或者,好不容易配好服务器,一敲 node -v 却报错“command not found”,瞬间怀疑人生——难道Node.js是某种需要特定咒语召唤的上古神兽?
别慌。这篇教程不讲概念、不堆术语、不甩官方文档链接,只干一件事:带你从下单到上线,把一个 Express Hello World 真正跑在公网可访问的阿里云国际站服务器上。中间穿插真实踩坑记录(比如我第一次被Ubuntu 22.04的snap版Node坑得重装三次)、命令复制即用、连scp传文件时少打个冒号这种低级错误都给你标红预警。

第一步:选对“房子”,比装修更重要

别盲目冲高配,1核1G Ubuntu 22.04 就够你练满三套武功

国际站ECS页面里,机型多得像菜市场摊位——共享型、计算型、突发性能型……先深呼吸。新手闭眼选:Shared-Compute (s6)General Purpose (g7) 的入门款,1核1G内存起步(月付约$3.5起),系统镜像务必选 Ubuntu 22.04 LTS(别碰CentOS,它已退休;也别贪新选24.04,Node生态适配还没完全跟上)。
地域选离你用户最近的:亚洲用户选 Singapore,欧美用户选 FrankfurtVirginia。网络类型选 VPC(默认就好),安全组记得勾选「HTTP(80)」「HTTPS(443)」「SSH(22)」——别学我,第一次漏开80端口,本地curl死活不通,还以为代码写错了……

第二步:连上服务器,别让密码变成“心理阴影”

SSH连接三连击:密钥生成→上传→登录

国际站默认禁用密码登录,强制用SSH密钥。Windows用户打开PowerShell(不是CMD!),Mac/Linux直接终端,执行:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
一路回车,密钥会存在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。
复制公钥内容:
cat ~/.ssh/id_rsa.pub | pbcopy(Mac)或 clip < ~/.ssh/id_rsa.pub(Win PowerShell)
回到阿里云控制台,在创建实例时的「Key Pair」栏,选「Import Key Pair」,粘贴公钥,命名如my-node-key
实例启动后,在「Connect」页选择「SSH Key」方式,下载私钥文件(如my-node-key.pem),然后:
chmod 400 my-node-key.pem
ssh -i ./my-node-key.pem ubuntu@YOUR_SERVER_IP
看到 ubuntu@instance:~$?恭喜,你已成功入侵自己的服务器!

第三步:装Node.js?别用apt,那是给系统找麻烦

nvm才是亲儿子:版本随心切,卸载一键清

Ubuntu自带的apt install nodejs装的是老古董(v12.x),且权限混乱。正确姿势:
执行:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
然后重启终端,或运行:
source ~/.bashrc
验证:nvm --version(应显示0.39.7+)
装最新LTS版:nvm install --lts
设为默认:nvm alias default lts/*
最后检查:node -v(v20.13.1)、npm -v(v10.5.2)——全绿,稳了。

第四步:代码上传与运行,告别“本地能跑,线上爆炸”

用scp传文件?记住这个万能公式

阿里云代充值 本地终端执行(别进SSH!):
scp -i ./my-node-key.pem -r ./my-node-app ubuntu@YOUR_SERVER_IP:/home/ubuntu/
⚠️重点:路径末尾别加斜杠!加了就传进子目录,不加才传整个文件夹。我因多打一个/,导致app.js被塞进/home/ubuntu/my-node-app//(双斜杠),调试半小时才发现……
登录服务器:cd /home/ubuntu/my-node-app,装依赖:npm ci(比npm install更快更干净)。
测试运行:node app.js(假设你入口是app.js)。如果控制台输出Server running on http://localhost:3000,说明代码本身没问题。

第五步:让它永不掉线——PM2守护进程实操

不用systemd,一行命令搞定“开机自启+崩溃重启”

全局安装PM2:npm install -g pm2
启动应用:pm2 start app.js --name "my-node-app"
查看状态:pm2 status(绿色online即健康)
日志实时追踪:pm2 logs my-node-app
设置开机自启:pm2 startup → 复制提示的命令执行(如sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
最后保存当前进程列表:pm2 save。断电重启后,你的Node服务依然坚挺如初。

第六步:让全世界访问你——Nginx反向代理,不是玄学

3分钟配好,比转发朋友圈还快

装Nginx:sudo apt update && sudo apt install nginx -y
启动并开机自启:sudo systemctl enable nginx && sudo systemctl start nginx
编辑配置:sudo nano /etc/nginx/sites-available/my-node-app
粘贴以下内容(替换YOUR_SERVER_IP为你的IP):
server {
  listen 80;
  server_name YOUR_SERVER_IP;
  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;
  }
}

启用配置:sudo ln -sf /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled/
删掉默认站:sudo rm /etc/nginx/sites-enabled/default
测试配置:sudo nginx -t(出现success才继续)
重载Nginx:sudo systemctl reload nginx
现在浏览器访问http://YOUR_SERVER_IP,看到“Hello World”?你已经是个合格的全栈工程师了(至少今天是)。

最后送你一句真·硬核提醒

阿里云国际站账单是按秒计费的。教程做完,如果只是练手,请务必在控制台把实例Stop(不是Terminate!),否则下个月邮箱会收到一份让你瞳孔地震的账单。另外,安全组规则别长期开着22端口裸奔,练完建议改SSH端口或限制IP段。技术不难,但敬畏心,永远是第一行代码。

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系