跳转至

部署总览:把你的项目放到公网

面向所有学习者:无论你用的是 Vue/React/Nuxt/Next.js 做前端,还是 Node.js/NestJS/Java 做后端,本系列帮你从 0 到 1 把项目部署上线


一、部署是什么

部署 = 把本地能跑的项目放到一台公网可访问的服务器上,让任何人都能通过域名或 IP 打开你的网站。

flowchart LR A[你在本地<br/>写完代码] --> B[构建<br/>打包优化] B --> C[推送<br/>到服务器/平台] C --> D[公网<br/>用户访问]

二、你的项目属于哪种

类型 技术栈举例 部署指南
纯前端静态站点 Vue / React(纯 SPA)、纯 HTML 前端部署指南
Node.js 后端 API Express / Koa / Fastify Node.js 后端部署
NestJS 后端 API NestJS + TypeORM/Prisma NestJS 后端部署
Java 后端 API Spring Boot + Maven/Gradle Java Spring Boot 部署
前后端分离项目 Vue + Express / React + NestJS / Vue + Spring Boot 全栈组合部署方案
SSR 全栈框架 Next.js / Nuxt 3 见下方"SSR 框架部署"
静态博客站点 VitePress / Hugo / Hexo 前端部署指南

三、部署平台选型速查

3.1 托管平台(托管服务器)

适合:纯前端 / SSR 全栈 / 不想管服务器的新人

平台 适合 免费额度 特点
Vercel 前端 / Next.js / SvelteKit ✅ 慷慨 自动部署、自带 CDN、Serverless Functions
Netlify 前端 / 静态站点 ✅ 慷慨 表单处理、Functions、分支预览
Cloudflare Pages 前端 / 静态站点 ✅ 非常慷慨 全球 CDN、Worker Functions
GitHub Pages 纯静态站点 ✅ 免费 直接关联 GitHub 仓库
Railway 前后端均可 ⚠️ 试用额度 Dockerfile / 一键部署
Render 前后端均可 ⚠️ 有限 Web Service + Static Site

3.2 云服务器(自己掌控)

适合:需要完全控制、有复杂后端、企业级项目

提供商 特点 最低月费(参考)
阿里云 ECS 国内首选、生态全 ~50 元
腾讯云 Lighthouse 轻量、适合个人项目 ~50 元
AWS EC2 / Lightsail 全球节点、免费套餐 12 个月 ~$3.5
Azure 学生免费额度 ~$15
华为云 国内节点 ~50 元

四、部署安全清单(所有项目必看)

无论用哪种方式部署,上线前必须检查以下项目:

4.1 前后端通用安全

检查项 说明 对应文档
HTTPS 强制使用 HTTPS,不允许 HTTP 明文 HTTPS 与传输安全
环境变量 API key、数据库密码等敏感信息不进代码仓库,走 .env + 平台环境变量 环境变量
CORS 白名单 后端只允许已知域名跨域访问,不能用 * CORS 跨域资源共享
CSP 头 防止 XSS,限制页面可加载的资源来源 CSP 内容安全策略
依赖审计 npm audit / mvn dependency-check 检查已知漏洞 供应链安全
速率限制 API 限制单 IP 请求频率,防刷防 DDoS 各后端部署指南含限流配置

4.2 前端额外安全

检查项 说明
敏感信息不打包 确认 API key、token 没有硬编码到前端代码
生产环境不要 console.log Vite/Webpack 自动剔除(视配置)
构建产物检查 确保 .map sourcemap 不上传生产(或限制内网访问)
安全头配置 X-Frame-OptionsX-Content-Type-OptionsReferrer-Policy

4.3 后端额外安全

检查项 说明
数据库密码强度 不用默认密码、不用弱密码
数据库白名单 只允许应用服务器 IP 连接数据库
SSH 密钥登录 禁止密码登录服务器
防火墙规则 只开放必要端口(80/443),其他端口不对外
SQL 注入防护 ORM 参数化查询,禁止拼接 SQL
日志脱敏 用户密码、身份证等敏感信息不记日志

五、部署流程(无论什么技术栈都遵循此流程)

flowchart TD A[1. 准备] --> B[2. 构建] B --> C[3. 环境配置] C --> D[4. 推送/上传] D --> E[5. 验证] E --> F[6. 域名与HTTPS] F --> G[7. 监控与日志] A1["代码提交到 Git<br/>依赖安装正常<br/>本地能跑通"] --> A B1["前端:npm run build<br/>后端:mvn package / nest build<br/>确保没有报错"] --> B C1["环境变量配置<br/>数据库连接信息<br/>API 域名配置"] --> C D1["平台:git push 自动部署<br/>VPS:rsync / git clone + 启动"] --> D E1["curl 测试 API<br/>浏览器访问页面<br/>检查 Network 面板"] --> E F1["DNS 解析配置<br/>SSL 证书申请<br/>Nginx 反代(如需要)"] --> F G1["日志接入<br/>健康检查<br/>告警配置"] --> G

六、常见部署错误速查

现象 可能原因 解决思路
页面空白 / JS 报错 静态资源路径不对(/ vs ./ 配置 base(Vite)/ homepage(CRA)
API 请求 404 Nginx 没配置 API 代理 在 Nginx 中添加 proxy_pass
CORS 报错 后端未配置允许跨域 设置 CORS 白名单,不可以用 *
npm install 慢/失败 镜像源没配 npm config set registry https://registry.npmmirror.com
502 / 504 后端应用未启动或挂了 查看进程状态、查看日志
数据库连不上 IP 白名单限制 在数据库安全组中放行应用服务器 IP
SSL 证书过期 Let's Encrypt 证书 90 天有效期 配置自动续期 certbot renew 或使用平台自带 SSL
内存泄漏 OOM 应用内存持续增长 检查未关闭的连接、大量缓存、内存泄漏

七、选择你的部署路径

                                你的项目
                                    │
                    ┌───────────────┼───────────────┐
                    ▼               ▼               ▼
              纯前端静态站点      后端 API 服务      全栈 SSR 框架
              (Vue/React)      (Node/Nest/Java)   (Next/Nuxt)
                    │               │               │
         ┌─────────┼──────┐   ┌────┼────┐     ┌────┼────┐
         ▼         ▼      ▼   ▼    ▼    ▼     ▼    ▼
      Vercel   Netlify  Nginx VPS K8s Vercel Vercel VPS
                    │               │               │
                    └───────────────┼───────────────┘
                                    ▼
                            [前端部署指南]
                            [后端部署指南]
                            [全栈组合方案]

下一步:选择你的场景 - 纯前端 → 前端部署指南 - 后端 API → Node.js 后端部署 | NestJS 后端部署 | Java 后端部署 - 前后端分离 → 全栈组合部署方案 - 安全相关 → 安全与性能