部署一个前后端分离的 Web 应用通常涉及两个独立的部分:
- 前端:静态资源(HTML、CSS、JavaScript、图片等),通常由 Vue、React、Angular 等框架构建。
- 后端:提供 API 接口,处理业务逻辑和数据库交互,常见技术栈如 Node.js、Spring Boot、Django、Flask、Go 等。
以下是服务器配置建议,分为硬件、软件和架构三个方面:
一、服务器硬件配置(以中等规模应用为例)
| 规模 | CPU | 内存 | 存储 | 带宽 | 适用场景 |
|---|---|---|---|---|---|
| 小型(测试/初期) | 2 核 | 2–4 GB | 50–100 GB SSD | 1–3 Mbps | 个人项目、低并发 |
| 中型(生产环境) | 4 核 | 8 GB | 100–200 GB SSD | 5–10 Mbps | 日活几千用户 |
| 大型(高并发) | 8 核+ | 16 GB+ | 500 GB+ SSD + 可扩展存储 | 10 Mbps+ | 高并发、大数据量 |
💡 初期可从 2核4G 开始,根据流量逐步升级。
二、软件环境配置
1. 前端部署
- 服务器角色:静态文件服务器
- 推荐技术:
- Nginx(最常用,高性能)
- Apache
- CDN + 对象存储(如阿里云OSS、腾讯云COS、AWS S3)
- 部署方式:
- 构建打包(
npm run build)生成dist目录 - 将
dist文件部署到 Nginx 的 web root - 配置反向解决跨域(或直接让前端请求后端API域名)
- 构建打包(
server {
listen 80;
server_name yourdomain.com;
root /var/www/frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 反向 API 请求
location /api/ {
proxy_pass http://backend-server:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
2. 后端部署
- 运行环境:
- Node.js(v16+)、Java(JDK 11+)、Python、Go 等
- 使用 PM2(Node.js)、Supervisor(Python)、systemd 等进程管理工具
- 接口服务:
- 运行在本地端口(如 3000、8080)
- 通过 Nginx 反向暴露到公网 80/443 端口
- 安全建议:
- 使用 HTTPS(Let’s Encrypt 免费证书)
- 设置防火墙(如 ufw 或安全组)
3. 数据库
- 类型:MySQL、PostgreSQL、MongoDB、Redis(缓存)
- 部署建议:
- 小项目:与后端同机部署(但注意资源竞争)
- 中大型项目:独立数据库服务器或使用云数据库(RDS)
- 备份策略:定期自动备份(如每天一次)
三、网络与安全配置
- 域名解析:绑定域名到服务器 IP
- SSL 证书:使用 Let’s Encrypt 配置 HTTPS(Nginx + Certbot)
- 防火墙:
- 只开放必要端口:80(HTTP)、443(HTTPS)、22(SSH)
- 禁止数据库端口(如 3306)对外暴露
- DDoS 防护:启用云服务商的基础防护
四、可选优化与扩展
| 功能 | 建议方案 |
|---|---|
| 负载均衡 | Nginx、HAProxy、云负载均衡器 |
| 高可用 | 多台服务器 + 负载均衡 + 数据库主从 |
| 自动化部署 | CI/CD(GitHub Actions、Jenkins、GitLab CI) |
| 监控 | Prometheus + Grafana、Uptime Kuma |
| 日志管理 | ELK(Elasticsearch, Logstash, Kibana)或轻量级工具 |
五、部署架构示例(中等规模)
用户浏览器
↓ HTTPS
[ Nginx 服务器 ] ← (80/443)
├── 前端静态文件 → /var/www/frontend/dist
└── 反向 → http://localhost:3000/api → [后端服务]
↓
[数据库 MySQL(独立服务器)]
六、云服务器推荐(国内/国际)
| 服务商 | 推荐机型 | 特点 |
|---|---|---|
| 阿里云 | ECS 通用型 g7 | 稳定,适合国内访问 |
| 腾讯云 | CVM 标准型 S5 | 性价比高 |
| 华为云 | 弹性云服务器 | 安全合规强 |
| AWS / DigitalOcean / VPS | t3.medium / $10/month | 国际用户友好 |
总结
部署前后端分离应用的核心要点:
✅ 前端:Nginx 托管静态文件,支持 SPA 路由
✅ 后端:独立运行 API 服务,通过 Nginx 反向
✅ 数据库:独立部署更安全稳定
✅ 安全:HTTPS、防火墙、最小权限原则
✅ 扩展性:预留升级空间,考虑未来负载均衡
📌 建议:初期使用一台 2核4G 服务器部署前端 + 后端 + 数据库(一体化),后期拆分。
如果你提供具体的技术栈(如 React + Spring Boot + MySQL),我可以给出更详细的部署步骤。
CLOUD技术笔记