Spring Boot+Vue前后端分离项目如何部署到服务器
🌟 前言
欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍
🤖 洛可可白:个人主页
🔥 个人专栏:✅前端技术 ✅后端技术
🏠 个人博客:洛可可白博客
🐱 代码获取:bestwishes0203
📷 封面壁纸:洛可可白wallpaper
文章目录
- Spring Boot+Vue前后端分离项目如何部署到服务器
- 环境准备
- 通用准备:
- 数据库准备
- Spring Boot部署环境:
- Vue.js部署环境:
- 可选环境:
- 运行sql文件创建数据库
- Spring Boot项目部署到服务器
- Vue项目部署到服务器
- 综合步骤
- 🎉 往期精彩回顾
Spring Boot+Vue前后端分离项目如何部署到服务器
部署Spring Boot+Vue前后端分离项目到服务器涉及以下步骤:首先,将Spring Boot后端应用打包成jar或war文件并上传至服务器,通过运行java -jar
命令启动后端服务。接着,构建Vue前端项目生成静态文件,同样上传至服务器的Web服务器目录,如Nginx的html
目录。最后,配置Nginx作为反向代理,将前端请求代理至Vue应用目录,同时确保后端API的路径正确映射。这样,前后端分离的项目就成功部署在服务器上。
部署Spring Boot和Vue项目到服务器之前,需要确保服务器具备以下环境和工具:
环境准备
通用准备:
-
服务器:
- 一台具有稳定网络连接的服务器,可以是云服务器或本地服务器。
- 服务器操作系统,常见的有Linux发行版(如Ubuntu、CentOS)或Windows Server。
-
SSH访问(对于Linux服务器):
- SSH客户端,如xshell。
- SSH客户端,如xshell。
-
文件传输工具:
- FTP客户端,如xftp。
- 或者SCP工具,如WinSCP(Windows)或终端(macOS、Linux)。
数据库准备
- MySQL环境:
- 安装
MySQL5.7
或MySQL8.0
。 - 可以通过运行
sudo systemctl status mysqld
来检查MySQL是否正在运行(MySQL需要配置远程访问)。
- 安装
- CentOS上安装MySQL 5.7和MySQL 8.0教程
- 837阅读 · 21点赞 · 13收藏
- MySQL远程访问工具:
- 用于构建远程访问
MySQL
工具,如Navicat
。
- 用于构建远程访问
Spring Boot部署环境:
-
Java环境:
- 安装Java Development Kit (JDK),至少需要1.8版本。
- 可以通过运行
java -version
和javac -version
来检查Java是否已安装。
- CentOS上安装JDK的详细教程
- 739阅读 · 12点赞 · 13收藏
- Maven或Gradle(如果需要本地构建):
- 用于构建Spring Boot项目的构建工具。
- 可以通过运行
mvn -version
或gradle -v
来检查是否已安装。
Vue.js部署环境:
-
Node.js和npm:
- 安装Node.js,它附带npm包管理器。
- 可以通过运行
node -v
和npm -v
来检查是否已安装。
-
Web服务器:
- Nginx或Apache用于提供静态文件服务。
- 对于Nginx,可以通过运行
nginx -v
来检查是否已安装。 - 对于Apache,可以通过运行
apache2 -v
或httpd -v
来检查是否已安装。
- CentOS上安装与配置Nginx
- 683阅读 · 9点赞 · 6收藏
- 手把手教你CentOS下载Nginx配置使用
- 464阅读 · 2点赞 · 3收藏
可选环境:
-
数据库:
- 如果Spring Boot应用需要数据库,需要安装相应的数据库服务器,如MySQL、PostgreSQL等。
- 确保数据库服务已启动,并且应用有正确的数据库连接配置。
-
反向代理/负载均衡:
- 如果有多个应用实例或需要SSL终端,可能需要配置Nginx或HAProxy作为反向代理或负载均衡器。
-
容器化工具(如Docker):
- 如果使用Docker,需要在服务器上安装Docker和Docker Compose。
-
自动化部署工具(如Jenkins、GitLab CI/CD):
- 如果需要自动化部署流程,可能需要安装和配置CI/CD工具。
确保在部署之前,服务器上的环境和工具都已经正确安装和配置,这样可以避免在部署过程中遇到不必要的问题。
运行sql文件创建数据库
-
远程连接服务器上的数据库:使用
Navicat
连接数据库。 -
运行项目相关的
SQL
文件:运行SQL
。
Spring Boot项目部署到服务器
-
打包应用:
使用Maven或Gradle将Spring Boot项目打包成可执行的jar或war文件。如果使用Maven,可以在pom.xml
中添加spring-boot-maven-plugin
插件,并运行mvn clean package
命令来打包。
-
上传到服务器:
使用FTP、SCP或其他文件传输方法将打包好的jar或war文件上传到服务器的适当目录中。 -
运行应用(如果是jar包):
在服务器上,使用以下命令在后台运行jar文件:nohup java -jar yourapp.jar > output.log 2>&1 &
这将把应用的输出重定向到
output.log
文件中,并在后台运行。 -
配置服务(可选):
为了确保应用可以在系统启动时自动运行,并能在出现问题时自动重启,可以创建一个Systemd服务文件。 -
开放端口:
确保服务器的防火墙设置允许外部访问Spring Boot应用的端口。
Vue项目部署到服务器
-
构建项目:
在本地环境中运行npm run build
命令,这将会在Vue项目的dist/
目录下生成构建后的文件。
-
上传文件:
将dist/
目录下的所有文件上传到服务器的Web服务器目录中,例如Nginx或Apache的html
或public
目录。
-
配置Web服务器:
配置Web服务器以提供静态文件服务。如果是Nginx,你需要编辑nginx.conf
或相应的配置文件,设置正确的根目录,并可能需要配置SSL(如果你使用的是HTTPS)。 -
重启Web服务器:
为了使配置生效,重启Web服务器。
先查询nginx服务运行的进程:ps -ef|grep nginx
杀死所查询到的nginx服务:kill -9 [ 查到的进程]
重启服务:cd /nginx安装的sbin目录
./nginx
-
访问应用:
在Web浏览器中输入服务器的IP地址或域名,你应该能够看到你的Vue应用。
综合步骤
对于同时包含前端Vue项目和后端Spring Boot项目的全栈应用,通常的做法是:
- 将Spring Boot应用打包并部署到服务器,作为后端API服务。
- 将Vue应用构建并上传到同一服务器的Web服务器目录中,或者配置反向代理(如Nginx)将前端请求代理到Vue应用的服务器。
确保在部署过程中,Vue应用的publicPath
或base
配置正确指向后端API的URL,以确保前后端能够正确地通信。
以上步骤是部署Spring Boot和Vue项目到服务器的基本流程。具体的命令和配置可能会根据你的项目和服务器环境有所不同。
如果对你有帮助,点赞、收藏、关注是我更新的动力!👋🌟🚀
🎉 往期精彩回顾
- 前端开发的发展史:框架与技术栈的演变
- 706阅读 · 11点赞 · 8收藏
- 打字通小游戏制作教程:用HTML5和JavaScript提升打字速度
- 588阅读 · 24点赞 · 18收藏
- 扫雷小游戏制作教程:用HTML5和JavaScript打造经典游戏
- 776阅读 · 15点赞 · 20收藏
- 拼图小游戏制作教程:用HTML5和JavaScript打造经典游戏
- 487阅读 · 9点赞 · 12收藏
- Mock.js 基本语法与应用笔记
- 280阅读 · 5点赞 · 9收藏
- 排序算法全景:从基础到高级的Java实现
- 679阅读 · 25点赞 · 9收藏
- CentOS系统上安装Redis操作教程
- 410阅读 · 4点赞 · 4收藏
- 打造你的HTML5打地鼠游戏:零基础入门教程
- 1131阅读 · 28点赞 · 30收藏
- 打造你的贪吃蛇游戏:HTML、CSS与JavaScript的完美结合
- 1078阅读 · 26点赞 · 12收藏
- 快速上手:使用Hexo搭建并自定义个人博客
- 669阅读 · 19点赞 · 20收藏
- 在Vue中处理接口返回的二进制图片数据
- 704阅读 · 21点赞 · 18收藏
- 打造经典游戏:HTML5与CSS3实现俄罗斯方块
- 1117阅读 · 31点赞 · 23收藏
- Spring Boot中Excel数据导入导出的高效实现
- 1066阅读 · 23点赞 · 22收藏
- Spring Boot中实现图片上传功能的两种策略
- 1297阅读 · 24点赞 · 13收藏
- CentOS上安装MySQL 5.7和MySQL 8.0教程
- 837阅读 · 21点赞 · 13收藏
- Spring Boot工程集成验证码生成与验证功能教程
- 1417阅读 · 39点赞 · 17收藏
- Spring Boot 3项目集成Swagger3教程
- 809阅读 · 15点赞 · 8收藏
- CentOS上安装JDK的详细教程
- 739阅读 · 12点赞 · 13收藏
- 解决前端项目中Node.js版本不一致导致的依赖安装错误
- 876阅读 · 17点赞 · 16收藏
- 入门指南:使用uni-app构建跨平台应用
- 1315阅读 · 29点赞 · 9收藏
- Vue项目中使用Mock.js进行API模拟
- 655阅读 · 17点赞 · 7收藏
- Vue组件间通信实践
- 866阅读 · 24点赞 · 18收藏
- CentOS上安装与配置Nginx
- 683阅读 · 9点赞 · 6收藏
- Vue跳转页面传递参数
- 268阅读 · 5点赞 · 4收藏
- vue项目如何下载使用gsap动画库
- 551阅读 · 1点赞 · 0收藏
- VS Code上搭建React开发环境
- 2286阅读 · 2点赞 · 10收藏
- vue命令式组件封装以及使用
- 819阅读 · 2点赞 · 3收藏
- springboot项目常用配置
- 379阅读 · 1点赞 · 0收藏
- 如何在Vue中使用百度地图API来创建地图应用程序。
- 345阅读 · 3点赞 · 1收藏
- 手把手教你CentOS下载Nginx配置使用
- 464阅读 · 2点赞 · 3收藏
- vue3 setup语法糖的三种书写方法
- 2824阅读 · 5点赞 · 14收藏
- vue3中vuex 的使用基本使用和二次封装
- 447阅读 · 3点赞 · 1收藏
- MySQL基础全套全网最详细讲解
- 770阅读 · 3点赞 · 6收藏
- 前端开发之响应式布局,响应式 HTML, CSS and JavaScript 框架介绍;
- 703阅读 · 3点赞 · 2收藏
- VS code搭建C/C++运行环境简单易上手
- 2786阅读 · 5点赞 · 8收藏
- Vue.2&Vue.3项目引入Element-UI教程&踩坑
- 9268阅读 · 22点赞 · 82收藏
- Vue项目引入Echarts可视化图表库教程&踩坑
- 2203阅读 · 3点赞 · 5收藏
- VirtualBox虚拟机搭建CentOS系统教程
- 4493阅读 · 4点赞 · 32收藏
- VS Code上搭建Vue开发环境
- 10662阅读 · 13点赞 · 64收藏
- Color-UI 简介及使用教程
- 5921阅读 · 2点赞 · 13收藏
相关文章:

Spring Boot+Vue前后端分离项目如何部署到服务器
🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...
【学习总结】Ubuntu中vscode用ROS插件调试C++程序
1、教程 参考博客: 【ROS】 在VScode中 ROS Debug 配置方法非常详细版 关于launch文件的配置: launch.json {"version": "0.2.0","configurations": [{"name": "ROS: Launch","request"…...

html--蝴蝶
<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…...
线程的 sleep()方法和 yield()方法有什么区别?为什么 Thread 类的 sleep()和 yield ()方法是静态的?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 线程的 sleep()方法和 yield()方法有什么区别 sleep()方法: sleep()方法使当前线程进入休眠状态,即暂停执行一段时间。它是静态方法,属于Thread类,调用…...

Java进阶 Maven基础
资料格式 配置文件 com.itheima Java代码 Statement stat con.createStatement(); 示例 com.itheima 命令 mvn test - Maven简介 传统项目管理状态分析 Maven 是什么 Maven的本质是一个项目管理工具,将项目开发过程抽象成一个项目对象模型(POM&…...
Spring Boot(六十八):SpringBoot 整合Apache tika 实现文档内容解析
1 Apache Tika 介绍 Apache Tika 是一个开源的内容检测和分析框架,由Apache软件基金会开发和维护的顶级项目。它可以从各种格式的文件中提取元数据和文本内容。Tika非常适合处理全文搜索、内容分析、翻译、内容提取等需要大量处理和分析文档内容的任务。Apache Tika提供了多种…...

jQuery+CSS3自动轮播焦点图特效源码
jQueryCSS3自动轮播焦点图特效源码,源码由HTMLCSSJS组成,双击html文件可以本地运行效果,也可以上传到服务器里面 下载地址 jQueryCSS3自动轮播焦点图特效源码...

面试经典150题(114-118)
leetcode 150道题 计划花两个月时候刷完之未完成后转,今天完成了5道(114-118)150 gap 了一周,以后就不记录时间了。。 114.(70. 爬楼梯) 题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不…...

HTML表单标签详解:如何用HTML标签打造互动网页?
在互联网的世界中,表单是用户与网站进行互动的重要桥梁。无论是注册新账号、提交反馈、还是在线购物,表单都扮演着至关重要的角色。在网页中,我们需要跟用户进行交互,收集用户资料,此时就需要用到表单标签。 HTML提供…...

Web 服务器-Tomcat
文章目录 Web服务器一、Tomcat简介二、基本使用三、在IDEA中创建Maven Web项目四、在IDEA中使用Tomcat Web服务器 一、Tomcat简介 二、基本使用 三、在IDEA中创建Maven Web项目 四、在IDEA中使用Tomcat...

(德迅零域)微隔离安全平台是什么,有什么作用?
网络隔离并不是新的概念,而微隔离技术(Micro-Segmentation)是VMware在应对虚拟化隔离技术时提出来的,但真正让微隔离备受大家关注是从2016年起连续3年微隔离技术都进入Gartner年度安全技术榜单开始。在2016年的Gartner安全与风险管…...
这些问题,每年软考报名时都有人问
软考报名实行网上在线报名的方式,每次在报名期间,考生都会遇到各种各样的问题,本文挑选了一些大家问的比较多的问题进行了解答,希望对大家有所帮助。 1、软考报名资格审核要审核多久? 一般来说审核时间在3个工作…...
JavaScript爬虫进阶攻略:从网页采集到数据可视化
在当今数字化世界中,数据是至关重要的资产,而网页则是一个巨大的数据源。JavaScript作为一种强大的前端编程语言,不仅能够为网页增添交互性,还可以用于网页爬取和数据处理。本文将带你深入探索JavaScript爬虫技术的进阶应用&#…...

MATLAB教程
目录 前言一、MATLAB基本操作1.1 界面简介1.2 搜索路径1.3 交互式命令操作1.4 帮助系统 二、MATLAB语言基础2.1 数据类型2.2 MATLAB运算2.2.1 算数运算2.2.2 关系运算2.2.3 逻辑运算 2.3 常用内部函数2.4 结构数据与单元数据 三、MATLAB程序设计3.1 M文件3.2 函数文件3.3 程序控…...

爱恩斯坦棋小游戏使用C语言+ege/easyx实现
目录 1、游戏介绍和规则 2、需要用到的头文件 3、这里我也配上一个ege和easyx的下载链接吧,应该下一个就可以 4、运行结果部分展示 5、需要用到的图片要放在代码同一文件夹下 6、代码地址(里面有需要用到的图片) 1、游戏介绍和规则 规则如…...

png格式怎么转成gif?一个小窍门快速转换
如何将png转换成gif动画?作为新媒体工作者,在日常办公中少不了使用到gif格式图片。那么,当我们遇到需要将png格式转换成gif格式的时候要怎么操作呢?很简单,使用gif动画图片(https://www.gif.cn/)…...
mysql笔记:20. 什么是数据库六大范式
文章目录 简介什么是范式最常用的范式 第一范式 - 1NF第二范式 - 2NF第三范式 - 3NF第四范式 - 4NF第五范式 - 5NF巴斯-科德范式 - BCNF总结 简介 什么是范式 范式(Normal Form,简称NF)是数据库设计时遵循的一种规范,不同的规范…...
4.GetMapping和PostMapping 和 @RequestMapping的区别。RequestBody 和ResponseBody的区别
1.GetMapping和PostMapping 和 RequestMapping的区别 //GetMapping只能通过get请求。 public class Hello1{GetMapping("hello1")public String h1(){return "1";}//PostMapping只能通过post请求,需要输入参数。 public class Hello2{PostMapp…...

UE要收费?难道ue的使用成本要增加吗?
去年,Epic Games在裁员16%后,放出要对非游戏制作等行业使用UE进行收费的消息。3月12日,Epic Games正式宣布了对UE、实时可视化工具Twinmotio和摄影测量应用RealityCapture的新定价。 Epic Games将从下个月开始推出新的Unreal订阅模式&#x…...
深度学习-2.6在MINST-FASHION上实现神经网络的学习流程
文章目录 在MINST-FASHION上实现神经网络的学习流程1. 导库2. 导入数据,分割小批量3. 定义神经网络4.定义训练函数5.进行训练与评估 在MINST-FASHION上实现神经网络的学习流程 现在我们要整合本节课中所有的代码实现一个完整的训练流程。 首先要梳理一下整个流程&a…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...

开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
本文主要分享一个开源的 GPU 虚拟化方案:HAMi,包括如何安装、配置以及使用。 相比于上一篇分享的 TimeSlicing 方案,HAMi 除了 GPU 共享之外还可以实现 GPU core、memory 得限制,保证共享同一 GPU 的各个 Pod 都能拿到足够的资源。…...