在阿里云上部署 Node.js 后端和 Vue 前端,推荐采用以下方案,兼顾性能、可扩展性、安全性和运维便捷性。以下是完整的推荐架构与步骤:
✅ 推荐整体架构
用户浏览器
↓
阿里云 CDN + DCDN(静态资源提速)
↓
[前端] OSS 静态托管(Vue 打包文件) ← 通过 CI/CD 自动上传
↓
[后端] ECS / 容器服务(ACK) / 函数计算 FC + API 网关
↓
数据库:RDS(MySQL / PostgreSQL)或 MongoDB
缓存:Redis(云数据库 Redis 版)
监控与日志:SLS(日志服务)、ARMS(应用监控)、云监控
域名与 HTTPS:阿里云 DNS + SSL 证书服务
一、前端(Vue)部署方案
方案1:OSS + CDN(推荐)
优点:成本低、速度快、免运维、支持 HTTPS 和自动压缩。
步骤:
-
构建 Vue 项目
npm run build生成
dist/目录。 -
创建 OSS Bucket
- 地域选择靠近用户区域(如华东1)。
- 开启「静态网站托管」模式。
- 设置默认首页为
index.html,错误页也为index.html(用于支持 Vue Router history 模式)。
-
上传 dist 文件到 OSS
- 手动上传或使用自动化工具(如
ossutil或 GitHub Actions)。
- 手动上传或使用自动化工具(如
-
绑定自定义域名 + CDN 提速
- 使用阿里云 CDN,接入 OSS 源站。
- 绑定你的域名(如
www.yourapp.com)。 - 在阿里云申请免费 SSL 证书并绑定,启用 HTTPS。
-
配置缓存策略
/static/*:长期缓存(1年)- 其他 HTML:不缓存或短时间缓存
二、后端(Node.js)部署方案
方案1:ECS 部署(适合初学者或稳定业务)
步骤:
-
购买 ECS 实例(建议选 Ubuntu/CentOS,2核4G起步)。
-
安装 Node.js、PM2、Nginx。
-
上传代码,使用 PM2 启动 Node.js 服务:
pm2 start app.js --name "my-node-app" -
使用 Nginx 反向:
server { listen 80; server_name api.yourapp.com; location / { proxy_pass http://localhost: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; } } -
配置 HTTPS(使用阿里云免费证书 + Nginx)。
优点:简单可控
缺点:需手动维护服务器
方案2:容器化部署(ACK 或 Serverless Kubernetes)
适用于中大型项目,支持弹性伸缩。
步骤:
-
编写 Dockerfile:
FROM node:16-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"] -
构建镜像并推送到阿里云 ACR(容器镜像服务)。
-
在 ACK 集群中部署 Deployment + Service + Ingress。
-
使用阿里云 SLB 对外暴露服务,配合 HTTPS。
优点:高可用、易扩展
缺点:学习成本略高
方案3:函数计算 FC + API 网关(Serverless)
适合轻量级、事件驱动型 Node.js 应用。
步骤:
- 将 Node.js 服务打包为函数。
- 上传到函数计算 FC。
- 绑定 API 网关,对外提供 RESTful 接口。
- 自动扩缩容,按调用量计费。
优点:免运维、低成本、弹性强
缺点:冷启动延迟,不适合长连接
三、数据库与缓存
- 数据库:使用阿里云 RDS(MySQL / PostgreSQL),开启备份、监控、只读实例。
- 缓存:云数据库 Redis 版,用于 Session 存储或数据缓存。
- 环境隔离:建议 dev/staging/prod 使用不同 RDS 实例。
四、CI/CD 自动化部署(推荐)
使用 GitHub Actions / 阿里云效(Cloud DevOps)
示例流程(GitHub Actions):
name: Deploy to Alibaba Cloud
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# 构建前端
- name: Build Vue
run: |
cd frontend
npm install
npm run build
# 上传到 OSS
- name: Deploy to OSS
uses: ali-sdk/actions-upload-to-oss@master
with:
access-key-id: ${{ secrets.OSS_ACCESS_KEY }}
access-key-secret: ${{ secrets.OSS_SECRET_KEY }}
region: oss-cn-hangzhou
bucket: your-vue-app-bucket
source-dir: frontend/dist
target-dir: /
# 部署后端(可选:上传代码到 ECS 或触发容器更新)
五、安全建议
- 使用 RAM 子账号 + 最小权限原则访问云资源。
- 所有服务启用 VPC 内网通信(如 ECS 访问 RDS/Redis)。
- Web 应用防火墙(WAF)防护常见攻击。
- 定期备份数据库。
- 日志集中到 SLS,设置异常告警。
六、域名与备案
- 在阿里云注册域名。
- 完成 ICP 备案(国内服务器必须)。
- 使用云解析 DNS 管理记录:
www→ CDN CNAMEapi→ SLB 或 ECS 公网 IP
✅ 总结:推荐组合(性价比高 + 易维护)
| 组件 | 推荐方案 |
|---|---|
| 前端 | OSS + CDN + HTTPS |
| 后端 | ECS + PM2 + Nginx(初期) |
| 数据库 | RDS MySQL |
| 缓存 | 云数据库 Redis |
| 部署 | GitHub Actions 自动部署 |
| 监控 | 云监控 + SLS 日志 |
| 安全 | WAF + VPC + SSL |
如需更高可用性,可升级为:
- 前端:OSS + CDN + DCDN
- 后端:ACK(Kubernetes)集群
- 数据库:主从 + 读写分离 + 备份策略
如果你提供具体项目规模(用户量、QPS、预算等),我可以进一步定制优化方案。
CLOUD技术笔记