前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
📢📢📢📣📣📣

哈喽!大家好,我是【 Bug 终结者,【CSDN新星创作者】🏆,阿里云技术博主🏆,51CTO人气博主🏆,INfoQ写作专家🏆 <br/>
一位上进心十足,拥有极强学习力的【 Java领域博主】😜😜😜 <br/>
🏅【Bug 终结者】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。 偶尔会分享些前端基础知识,会更新实战项目,面向企业级开发应用
🏅 如果有对【后端技术】、【前端领域】感兴趣的【小可爱】,欢迎关注【Bug 终结者】💞💞💞


❤️❤️❤️ 感谢各位大可爱小可爱! ❤️❤️❤️

在这里插入图片描述

@[TOC]

一、项目简介

本项目是一个班级管理系统,用户分为2类:管理员、学生,

管理员有班级管理和学生管理,学生的权限只可以看到自己的班级,以及切换班级

项目技术栈:Spring Boot、Spring Security、MyBatis、Vue2、ElementUI

用户类别 权限模块 权限
管理员 班级管理(可切换学生的所在班级),学生管理 admin
普通用户(学生 切换班级模块 student

具体可看:深入浅出Spring Boot + Spring Security + Vue + ElementUI 实现班级学生管理系统

二、环境准备

⌚安装Nginx

打开nginx官网下载nginx

nginx官方下载

在这里插入图片描述

我们选择稳定版本1.20.2

下载完毕使用Filezilla将文件上传至nginx

左侧为本地文件,右侧为Linux文件,双击上传至Linux文件夹下

上传成功后我们去Linux下找到该文件并解压

cd /usr/local/nginx

解压文件

tar -xvf nginx-1.10.2.tar.gz

解压成功后查看解压后的文件

在这里插入图片描述

进入文件

cd /nginx-1.10.2

在这里插入图片描述

执行命令编译nginx

./configure --with-http_stub_status

执行make命令

make

进入sbin目录

cd /usr/local/nginx/sbin

在这里插入图片描述

重新加载配置文件并优雅的启动

 加载文件
 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
 重新加载并启动Nginx
 ./nginx -s reload

具体可看:3分钟搞懂阿里云服务器安装Nginx并配置静态访问页面

⌚安装JDK

打开Oracle官网,下载jdk1.8版本, Oracle1.8下载地址

在这里插入图片描述

使用putty将文件上传至服务器

解压文件

tar -xvf jdk-8u311-linux-x64.tar.gz

在这里插入图片描述

配置环境

vim /etc/profile

写入以下文件

export JAVA_HOME=/usr/java/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

设置配置文件立即生效

source /etc/profile

♻️测试

测试Java

在这里插入图片描述

测试Javac

在这里插入图片描述

三、安装MySQL

安装MySQL,首先下载MySQL安装包,这里下载MySQL8.0

进入usr/local新建MySQL目录

cd usr/local

mkdir mysql

以下操作在 mysql目录下操作

下载MySQL

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

也可以去官网直接下载

安装成功后查询下载好的文件

ll

在这里插入图片描述

解压下载好的文件

tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

再次查看文件

在这里插入图片描述

文件太长,我们修改文件名为mysql-8.0

 mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8.0

修改完毕后我们再次查看文件名

在这里插入图片描述

进入 mysql8.0 目录

在这里插入图片描述

新建 data 目录存放核心文件

mkdir data

在这里插入图片描述

添加 mysql 组和用户组密码

groupadd mysql

useradd -g mysql mysql

在这里插入图片描述

修改MySQL文件名

mv mysql8.0 mysql-8.0

在这里插入图片描述

授权用户

chown -R mysql.mysql /usr/local/mysql/mysql-8.0

在这里插入图片描述

回到bin目录初始化信息

cd bin 
# 初始化基础信息
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/mysql-8.0/data/ --initialize

在这里插入图片描述

保存临时密码后面我们测试时要用

编写 MySQL my.cnf 配置文件

vim etc/my.cnf

按下 i 键 写入内容

注意:一开始配置为空,我们将下面配置文件复制到 my.cnf文件中

[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
basedir=/usr/local/mysql/mysql-8.0/
datadir=/usr/local/mysql/mysql-8.0/data/
# 设置字符编码集
character-set-server=utf8
# 日志存放目录
log-err=/usr/local/mysql/mysql-8.0/data/mysqld.log
pid-file=/usr/local/mysql/mysql-8.0/data/mysqld.pid

主要区分 [client][mysqld]

修改完毕后退出并保存

esc # 取消编辑
:wq # 保存并退出

回到mysql-8.0目录,将mysqld添加到服务

cp -a ./support-files/mysql.server /etc/init.d/mysql

授权和添加服务

chmod +x /etc/init.d/mysql

chkconfig --add mysql

在这里插入图片描述


启动MySQL服务
service mysql start

查看 MySQL服务是否启动

service mysql status

在这里插入图片描述

连接MySQL
mysql -uroot -p

Enter Pwd: 刚刚保存的密码,复制到此,回车即可成功

在这里插入图片描述

修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

刷新

flush privileges;

在这里插入图片描述

启动MySQL远程连接并生效
update user set host='%' where user='root';

flush privileges;

MySQL连接成功~

⌛可视化工具连接创建数据库

我们使用SQLyog工具连接远程数据库

SQLYog官网下载地址

连接阿里云服务器MySQL

在这里插入图片描述

这里如果连接不上,请关闭 Linux防火墙并在阿里云控制台打开允许访问3306端口

关闭 Linux 防火墙

查看防火墙状态

systemctl status firewalld

关闭防火墙,暂时关闭防火墙

systemctl stop firewalld

阿里云安全组开放端口

阿里云服务器允许访问3306端口

实例 --> 安全组,添加安全组访问规则

在这里插入图片描述

四、将项目部署至Linux服务器

在上面我们已经准备好了初始环境,接下来我们开始将前端项目和后端项目部署至Linux服务器!

➿创建目录

新建work目录备用,后续文件上传至此文件夹

mkdir work

mkdir class_manager

# 进入 class_manager创建
# 新建api
mkdir api
# 新建pc
mkdir pc

🚡编译前端项目

前端Vue项目注意:请将conf/index.js文件修改为/

在这里插入图片描述

win+r 输入cmd 进入项目目录编译项目

npm rum build

使用Filezilla将编译的文件上传至Linux指定目录


在这里插入图片描述

前端目录
在这里插入图片描述

目录解释

  • favicon.ico 图标文件
  • index.html 主程序文件
  • static 静态文件 js ,image,css

📝配置Nginx

配置Nginx,指向前端路径,并配置跨域

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location  / {
            root   /work/class_manager/pc/dist;
            index  index.html index.htm;
            #开启后不会导致刷新白屏
            try_files $uri $uri/ /index.html;
        }

        # 接口访问路径,解决跨域
        location /springbootajax/ {
                proxy_pass http://39.105.13.178:8345/springbootajax;
        }


        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}

🔋测试访问前端页面

访问前端网站

在这里插入图片描述

成功访问!

📝编译后端项目

win+r输入cmd,然后进入项目目录进行编译

# 将项目编译为jar包
mvn clean package

使用Filezilla将编译的文件上传至Linux指定目录

编译完成后生成zip文件,进入target目录解压文件,并将解压完成的文件上传至指定目录

在这里插入图片描述

后端项目目录

在这里插入图片描述

目录解释

  • config 配置文件地址,application.yml
  • libs,类库,lib文件,引用的一些第三方jar包
  • logs.txt 日志文件
  • start.sh 启动程序脚本
  • stop.sh 停止程序脚本

📍编写脚本启动项目

进入api目录编写shell脚本

start.sh

# 后台方式运行项目
nohup java -jar test_springboot-0.0.1-SNAPSHOT.jar >./logs.txt &
# 输出运行成功
echo "running!"

stop.sh

# 获取jar包的pid
pid=$(ps aux|grep test_springboot-0.0.1-SNAPSHOT.jar)
# 删除pid对应的进程
kill -9 $pid

赋予脚本执行权限

chmod o+x start.sh

chmod o+x stop.sh

执行脚本

./start.sh

./stop.sh

五、项目效果图

在这里插入图片描述

📜项目源码获取

SpringBoot + Vue实战项目

前端代码获取:
https://gitcode.net/weixin_45526437/class-manager-system-pc

后端代码获取
https://gitcode.net/weixin_45526437/class-manager-system-svr

使用Git爬取源码

使用Git爬取GitEE、GitLab、GitCode、GitHub源码

⛵小结

以上就是【Bug 终结者】对前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器简单的概述,本案例主要实现了前后端分离项目线上环境的部署,处理线上问题,增加自己的实战经验,本案例为真实企业项目部署案例,实战增加自己的经验,技术在手,天下我有~

如果这篇【文章】有帮助到你,希望可以给【 Bug 终结者】点个赞👍,创作不易,如果有对【 后端技术】、【 前端领域】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【 Bug 终结者】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💝💝💝!
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
834 7
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1226 1
|
9月前
|
前端开发 安全 Java
基于springboot+vue开发的会议预约管理系统
一个完整的会议预约管理系统,包含前端用户界面、管理后台和后端API服务。 ### 后端 - **框架**: Spring Boot 2.7.18 - **数据库**: MySQL 5.6+ - **ORM**: MyBatis Plus 3.5.3.1 - **安全**: Spring Security + JWT - **Java版本**: Java 11 ### 前端 - **框架**: Vue 3.3.4 - **UI组件**: Element Plus 2.3.8 - **构建工具**: Vite 4.4.5 - **状态管理**: Pinia 2.1.6 - **HTTP客户端
1300 4
基于springboot+vue开发的会议预约管理系统
|
10月前
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
576 6
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
762 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
928 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
JavaScript 前端开发 UED
Vue 项目中如何自定义实用的进度条组件
本文介绍了如何使用Vue.js创建一个灵活多样的自定义进度条组件。该组件可接受进度段数据数组作为输入,动态渲染进度段,支持动画效果和内容展示。当进度超出总长时,超出部分将以红色填充。文章详细描述了组件的设计目标、实现步骤(包括props定义、宽度计算、模板渲染、动画处理及超出部分的显示),并提供了使用示例。通过此组件,开发者可根据项目需求灵活展示进度情况,优化用户体验。资源地址:[https://pan.quark.cn/s/35324205c62b](https://pan.quark.cn/s/35324205c62b)。
588 0
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
750 0
|
8月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。

热门文章

最新文章