跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Java大前端java

前后端分离架构(Vue+SpringBoot)项目部署流程与方案对比

介绍前后端分离项目(Vue 前端 + Java/SpringBoot 后端)的两种部署方案:全服务器部署与前端静态托管 + 后端服务器部署。详细讲解了云服务器购买、宝塔面板安装、环境配置、数据库迁移及 Nginx 反向代理设置。对比了 HTTP 全服务器部署的低成本优势与 HTTPS 混合部署的生产级安全性,提供了具体的命令行操作与配置文件示例。

念念不忘发布于 2026/4/5更新于 2026/7/2472 浏览
前后端分离架构(Vue+SpringBoot)项目部署流程与方案对比

前后端分离架构项目部署指南

一、部署架构概述

优先选择低成本 + 易操作的组合:

  • 前端:免费静态托管平台(Netlify/Vercel,无需服务器)或云服务器
  • 后端:云服务器(学生机,每月 9 元起)
  • 数据库:云服务器内置 MySQL(或用免费云数据库)

下文主要介绍全服务器部署方式,即前后端都部署到云服务器上。

二、第一步:部署前端(Vue 项目)

1. 本地打包前端代码

在 Vue 项目根目录执行命令,生成静态文件目录 dist:

npm run build

2. 部署到 Netlify(可选)

如果是全服务器部署,此步骤可以跳过。若选择独立部署:

  1. 把前端代码推到 GitHub/Gitee 仓库。
  2. 打开 Netlify 官网,用 GitHub/Gitee 账号登录。
  3. 点击「Add new site」→「Import an existing project」,选择你的前端仓库。
  4. 配置构建参数(Netlify 会自动识别 Vue 项目):
    • 构建命令:npm run build
    • 发布目录:dist
  5. 点击「Deploy site」,等待 2 分钟,Netlify 会生成一个免费域名。

三、第二步:部署后端(Java/SpringBoot)

1. 购买学生云服务器

推荐腾讯云轻量应用服务器(学生机):

  • 价格:2 核 2G/1M 带宽,每月 9 元(需学生认证)
  • 系统:选 CentOS 7.x(Linux 系统,稳定常用,宝塔面板部署)

2. 服务器环境配置(使用宝塔面板)

登录腾讯云服务器控制台,通过「WebShell」登录服务器。 安装宝塔面板(可视化管理服务器):

wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

⚠️ 注意:这个命令只需要输入一次,记住给的账号和密码。重复运行会导致内存挤压,程序崩溃。

安装完成后,记录宝塔的登录地址(如 http://服务器 IP:8888)、账号密码。 登录宝塔面板,一键安装「LNMP 套件」(包含 Nginx/MySQL/Node.js)。

⚠️ 如果忘记宝塔界面登录密码,重置方法: 打开终端面板,输入 bt default 指定查看或重置面板信息。

四、第三步:部署数据库(MySQL)

  1. 宝塔面板 → 「软件商店」→ 安装 MySQL 8.0。
  2. 点击「设置」→「数据库」→「添加数据库」:
    • 数据库名:quiz_db
    • 用户名 / 密码:自定义(如 quiz_user/123456)
  3. 导入本地数据库脚本:
    • 本地导出 SQL 文件,在宝塔「数据库」→「导入」上传 SQL 文件。

⚠️ 常见报错处理: 如果出现 mysqldump: [ERROR] unknown variable 'collation=utf8mb4_general_ci',通常是因为本地 DataGrip 连接的是 MySQL 8.0 版本,导出的 SQL 里自带了高版本专属的排序规则,而服务器宝塔的 MySQL 版本是 5.7/5.6 版本,不认识这个高版本规则。建议统一版本或在导出时调整 collation 设置。

五、第四步:连接前后端 + 配置域名

1. 后端配置数据库

修改 SpringBoot 项目的 application.yml,将数据库连接改为服务器的 MySQL:

spring:
  datasource:
    url: jdbc:mysql://服务器 IP:3306/quiz_db?useSSL=false&serverTimezone=Asia/Shanghai
    username: quiz_user
    password: 123456

2. 打包并启动后端服务

  1. 本地打包 SpringBoot 项目为 jar 包:IDEA 中执行 mvn package,生成 target/xxx.jar。
  2. 上传 jar 包到服务器:宝塔面板 → 「文件」→ 新建目录(如 /www/backend),上传 jar 包。
  3. 启动后端服务:
    • 安装「PM2 管理器」、「Java 项目项目管理器」(宝塔软件商店)。
    • 点击左侧导航栏「网站」→「Java 项目」:
      • 项目名称:自定义(如 quiz-backend)
      • 启动文件:选择上传的 jar 包
      • 启动命令:java -jar xxx.jar --server.port=8080(指定端口)

3. 使用 Nginx 进行反向代理

  1. 「网站」→「PHP 项目」→「添加站点」。
  2. 前端打包成静态资源放在和 jar 同一目录下。
  3. 完成创建后项目会自动启动,后端服务在服务器 8080 端口运行。

六、最终访问与方案对比

方案一:全服务器部署(HTTP)

  • 操作:将前后端都部署在云服务器上,使用 HTTP 请求和默认 80 端口,将前端项目打包,上传至后端项目所在文件夹,使用 Nginx 进行反向代理。
  • 优势:零额外成本(无需买域名、SSL 证书),适合个人测试、小型 demo 或非公开项目。
  • 缺点:HTTP 有安全性缺陷(数据传输未加密),无法使用需要 HTTPS 的功能(如浏览器定位、PWA)。前端静态资源和后端 API 都依赖同一台服务器的带宽和性能。
  • Nginx 作用:监听服务器的 80 端口,当用户访问 http://服务器 IP 时,Nginx 会转发请求——静态资源直接返回前端文件,API 请求转发到后端的 8080 端口。

方案二:Netlify 前端 + 服务器后端(HTTPS)

  • 操作:前端部署在 Netlify CDN,后端服务器配置 SSL 证书,让后端接口支持 HTTPS。
  • 优势:生产级正式性(HTTPS 加密、自定义域名),前端静态资源由 CDN 加载,用户访问页面更快,后端仅需处理 API 请求,服务器压力更小。
  • 注意:若前端(HTTPS)调用后端(HTTP)仍会被浏览器拦截(混合内容错误)。需购买域名,申请 SSL 证书,并遵守备案规则。

简言之,方案一更加省钱,方案二是更为正式稳健的一种部署方案。

目录

  1. 前后端分离架构项目部署指南
  2. 一、部署架构概述
  3. 二、第一步:部署前端(Vue 项目)
  4. 1. 本地打包前端代码
  5. 2. 部署到 Netlify(可选)
  6. 三、第二步:部署后端(Java/SpringBoot)
  7. 1. 购买学生云服务器
  8. 2. 服务器环境配置(使用宝塔面板)
  9. 四、第三步:部署数据库(MySQL)
  10. 五、第四步:连接前后端 + 配置域名
  11. 1. 后端配置数据库
  12. 2. 打包并启动后端服务
  13. 3. 使用 Nginx 进行反向代理
  14. 六、最终访问与方案对比
  15. 方案一:全服务器部署(HTTP)
  16. 方案二:Netlify 前端 + 服务器后端(HTTPS)
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 闲置小米 9 打造复古掌机及天马 G 前端配置指南
  • JavaScript 中 var、let、const 的核心区别与实战应用
  • SQL Server 2025 数据库安装与配置图文教程
  • C++ 模板编程入门:泛型编程核心概念
  • Windows 系统安装与配置 Neo4j 图数据库指南
  • GitHub 国内镜像站汇总与加速配置实战
  • CoPaw 部署与定制实操笔记
  • AI 绘画报错:模型缺失与配置修复指南
  • 初识 Linux:make 和 makefile 自动化构建工具
  • Python Wheel 文件安装实战:三种方法与常见错误解决
  • JavaScript 核心语法与常用 API 速查
  • RabbitMQ 工作模式实战:Work Queue 负载均衡与 fanout 发布订阅
  • 链表核心概念与特性梳理
  • Python 安装教程:Windows 系统最佳实践
  • Python 内置函数 enumerate() 用法详解
  • 从零部署 Llama-2-7b-chat-hf 构建企业级 AI 对话系统
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • 如何让英文大语言模型支持中文:继续预训练指南
  • Win10 升级后弹出 Microsoft 365 Copilot 窗口如何禁用
  • Git 分布式版本控制:安装、配置与核心实战

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online