当前位置:网站首页 >  攻略

零门槛新手用Node.js写简易API并部署到阿里云ECS通用Linux实例全流程

时间:2026年06月03日 16:24:36 来源:易频IT社区

前期准备

所有工具、资源必须提前准备到位,避免中途停摆。

1. 本地工具安装

  • Node.js(含npm):官网下载地址https://nodejs.org/zh-cn/,选LTS长期支持版,双击安装包默认下一步即可,安装后打开终端输入`node -v`和`npm -v`,出现版本号说明成功。
  • FinalShell(或Xshell+Xftp):推荐FinalShell免费版,官网下载地址http://www.hostbuf.com/t/988.html,选对应系统版本,一键安装用于远程连接服务器。
  • 阿里云ECS实例:直接到阿里云控制台https://ecs.console.aliyun.com/购买,新手选`突发性能型t6`(1核2G,带宽按流量计费设置3Mbps峰值),操作系统选`Ubuntu 22.04 LTS 64位`,设置好root密码后开机,在控制台获取实例公网IP。

2. 本地API代码准备

在本地电脑新建一个空文件夹(比如命名为`simple-api`),在文件夹内打开终端。

  • 初始化npm项目(一路回车默认即可): ```bash npm init -y ```
  • 安装Express轻量级框架: ```bash npm install express --save ```
  • 新建`index.js`文件,粘贴以下完整可直接运行的代码: ```javascript const express = require('express'); const app = express(); const port = 3000; // 监听端口,后面防火墙和反向代理要对应 // 解决跨域问题(可选但实用,本地前端测试时不会报错) const cors = require('cors'); app.use(cors()); // 解析JSON请求体 app.use(express.json()); // 测试GET接口 app.get('/test', (req, res) => { res.json({ code: 200, message: '恭喜,API部署成功!', data: { timestamp: Date.now(), userAgent: req.get('User-Agent') } }); }); // 启动服务器 app.listen(port, () => { console.log(`本地测试API已启动:http://localhost:${port}/test`); }); ```
  • 顺便安装跨域依赖: ```bash npm install cors --save ```
  • 本地测试:终端输入`node index.js`,浏览器访问`http://localhost:3000/test`,出现JSON响应说明代码没问题。

部署到服务器

按顺序操作,每一步确认无误后再继续。

1. 远程连接阿里云ECS

  • 打开FinalShell,点击左上角「文件夹」图标,选「新建SSH连接」。
  • 填写配置:
    • 名称:随便填(比如「我的API服务器」)
    • 主机:阿里云控制台的公网IP
    • 端口:默认22
    • 认证方法:选密码
    • 用户名:root
    • 密码:你购买实例时设置的root密码
  • 点击「确定」「连接」,弹出安全警告直接「接受并保存」,进入Linux终端界面。

2. 服务器基础环境配置

  • 更新系统源: ```bash apt update && apt upgrade -y ```
  • 安装Node.js和npm: ```bash curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - apt install -y nodejs ``` 安装后同样输入`node -v`和`npm -v`检查版本。
  • 安装PM2(进程守护工具,防止API崩溃重启): ```bash npm install pm2 -g ```
  • 安装Nginx(反向代理工具,用于将80/443端口映射到3000端口): ```bash apt install -y nginx ``` 安装后浏览器直接访问服务器公网IP,出现「Welcome to nginx!」说明成功。

3. 上传本地API代码到服务器

零门槛新手用Node.js写简易API并部署到阿里云ECS通用Linux实例全流程

FinalShell自带文件传输功能,比命令行更简单。

  • FinalShell左侧导航栏点击「文件」,进入服务器`/root`目录(默认登录目录)。
  • 在服务器`/root`目录下新建文件夹,命名为`simple-api`。
  • 将本地`simple-api`文件夹内的所有文件和文件夹(注意不是文件夹本身)拖拽到服务器`/root/simple-api`目录下。

4. 启动并守护API进程

  • 在FinalShell终端进入API目录: ```bash cd /root/simple-api ```
  • 重新安装依赖(本地和服务器的Node.js版本可能有差异,必须重装): ```bash npm install ```
  • 用PM2启动API: ```bash pm2 start index.js --name my-simple-api ``` `--name`是给进程起的别名,方便后续管理。
  • 检查PM2进程状态: ```bash pm2 status ``` 看到`status`列显示`online`说明API已在服务器后台运行。
  • 设置PM2开机自启: ```bash pm2 startup pm2 save ``` 复制`pm2 startup`输出的最后一条命令粘贴并执行,确保服务器重启后API自动启动。

5. 配置Nginx反向代理

浏览器访问默认HTTP端口是80,而我们的API监听3000,需要用Nginx转发。

  • 备份默认Nginx配置文件: ```bash mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak ```
  • 新建并编辑新的配置文件: ```bash nano /etc/nginx/sites-available/default ```
  • 粘贴以下完整配置,注意把`your_public_ip`替换成你的阿里云ECS公网IP: ```nginx server { listen 80; listen [::]:80; server_name your_public_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; } } ```
  • 按`Ctrl+O`保存,按`Enter`确认文件名,按`Ctrl+X`退出nano编辑器。
  • 检查Nginx配置是否有误: ```bash nginx -t ``` 看到`syntax is ok`和`test is successful`说明配置正确。
  • 重启Nginx使配置生效: ```bash systemctl restart nginx ```

6. 开放阿里云ECS安全组端口

这是新手最容易卡壳的一步!Linux防火墙和云服务器安全组是两道关,都要开。

  • FinalShell终端关闭Linux防火墙(或者单独开放80/3000端口,新手直接关更稳妥): ```bash ufw disable ```
  • 打开阿里云控制台,进入你的ECS实例详情页,点击左侧「安全组」,找到默认安全组,点击「配置规则」。
  • 点击「手动添加」,填写配置:
    • 授权策略:允许
    • 优先级:1
    • 协议类型:自定义TCP
    • 端口范围:80/80
    • 授权对象:0.0.0.0/0
    • 描述:随便填(比如「开放HTTP端口用于API」)
  • 点击「保存」,等待10-30秒生效。

最终测试

打开任何浏览器,输入`http://你的公网IP/test`,出现和本地测试一样的JSON响应,说明服务器API部署100%成功!

常见问题排查

  • 浏览器访问超时:检查PM2状态(`pm2 logs my-simple-api`看日志)、Nginx配置是否正确、安全组和Linux防火墙是否开放80端口。
  • 502 Bad Gateway:检查API进程是否`online`(`pm2 status`),如果不是,重启进程(`pm2 restart my-simple-api`)。
  • 修改代码后不生效:修改服务器代码后,用`pm2 restart my-simple-api`重启API进程即可。

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图