SpringBoot+Vue 前后端分离 微服务项目 打包部署全流程(原始部署/宝塔部署)

简介: SpringBoot+Vue 前后端分离 微服务项目 打包部署全流程(原始部署/宝塔部署)

前端打包部署

前端项目为vue项目,使用vue admin template作为后台管理模板进行开发。

前端打包

了解开发环境、生产环境,修改生产环境的配置

在开发的时候,往往使用本地电脑进行开发。但是项目上线的时候,需要部署到云服务器中。因此项目中使用两个配置文件来分别存放开发环境和生产环境,方便环境切换。


修改生产环境配置文件。

修改配置文件

运行命令进行打包

打包成功之后得到dist文件夹

前端部署

使用下面两种部署方式都可以,如果linux服务器已经安装了宝塔,推荐宝塔,因为方便高效。

nginx部署

先将打包后的文件上传到云服务器的nginx的html目录下



修改配置文件



server {
        # 前端项目要部署到什么端口
        listen       8889;
        server_name  localhost;
        location / {
            # 告诉nginx,前端打包好的文件在哪里 
            root   html/sssFront;
            # index配置首页文件
            index  index.html index.htm;
        }
        #这里解决跨域问题,后端地址及端口号
    location /api/ {
        # ip和端口 根据后端服务器来确定,因为我的后端服务也是部署在这台服务器中,所以可以写127.0.0.1
      proxy_pass http://127.0.0.1:6001$request_uri;
      proxy_redirect    off;
      proxy_set_header  Host $host;
      proxy_set_header  X-real-ip $remote_addr;
      proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

修改完配置文件之后,重启或者reload nginx即可。前端项目部署成功,服务器开放端口后,使用 ip:8889访问即可。

宝塔部署

宝塔安装

使用宝塔可以非常方便地部署前端、后端项目,但是有一个前提条件:你的服务器已经安装了宝塔,或者你的服务器非常干净,什么环境都没有。


想要安装宝塔非常简单,直接命令行运行下面的命令,途中有y/n,直接选择y即可。

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec


安装成功之后记得将自己的信息存储起来。


云服务器开放宝塔相应端口(本文的端口是19565),即可使用本地电脑访问宝塔面板(访问地址为上图的外网面板地址),输入账号密码即可进入宝塔面板

软件安装

想要部署前端,只需要安装一个nginx即可


网站部署


勾选文件,右键删除

直接将本地打包的文件拖进来上传即可。


文件上传之后,如果自己输入的域名是假域名,需要配置云服务的ip


云服务器开放8002端口,即可访问前端项目

到这里,前端就部署成功啦,直接使用 域名:端口 或者 ip:端口即可访问网站

后端打包部署

后端打包

修改生产环境配置

pom文件修改

父工程的pom文件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <!-- 默认关掉单元测试,不用手动关闭了 -->
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>


子工程的pom文件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 指定启动类 -->
                <mainClass>com.dam.ThirdPartyApplication</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!-- 将依赖到的包都放进去 -->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

打包


点击父工程的package即可为所有子工程打包,打包之后的jar包在子工程的target下面找到


后端部署

普通部署

运行jar包

有了jar包之后,直接在服务器里面运行jar包即可,首先将打包好的文件上传到服务器中


因为要运行的服务比较多,我这里使用批处理文件,run.sh,直接创建一个文本,将命令输入进去即可

nohup java -Xmx1024M -Xms256M -jar shift-scheduling-calculate-service-0.0.1-SNAPSHOT.jar --server.port=6004 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar sss-enterprise-0.0.1-SNAPSHOT.jar --server.port=6002 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar sss-gateway-0.0.1-SNAPSHOT.jar --server.port=6001 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar sss-system-server-0.0.1-SNAPSHOT.jar --server.port=6000 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar sss-third-party-0.0.1-SNAPSHOT.jar --server.port=8160 --spring.profiles.active=prod


说明:


1.nohup 使用nohup可以让项目在后台运行,不写nohup可以看到jar包运行的输出


3.-Xmx Java Heap最大值,默认值为物理内存的1/4,应该视物理内存大小及计算机内其他内存开销进行设置


3.-Xms Java Heap初始值,也是最小值


4.-Xmn Java Heap Young区大小,不熟悉最好保留默认值(我就是不熟悉所以不设置o(╥﹏╥)o)


5.-Xss 每个线程的stack大小,不熟悉最好保留默认值


6.–server.port=6004 指定jar运行的端口号,也可以不指定,因为配置文件也写了,不过想指定其他的可以在这里指定


7.–spring.profiles.active=prod 指定运行jar使用的配置,也可以=dev、test,看你需要用哪套进入



最后进入jar包所在目录执行run.sh文件即可成功部署后端

给run.sh赋予执行权限

chmod u+x *.sh


执行run.sh

./run.sh


停止jar包运行

查看每个jar包的pid


使用命令杀掉进程即可

kill -9 jar对应的pid


宝塔部署

软件安装

如果服务器没有相应的开发环境,使用宝塔就直接爽翻了,我基本是使用宝塔+Docker就可以搞定项目所需的运行环境


这里的tomcat就是一个工具软,安装成功之后,直接停止它的运行


jar包部署

将jar包都上传到宝塔中


点击提交即部署成功,

最后记得在宝塔和服务器开发端口

停止jar包执行

01adab4509d142389076f8decc4693a2.png


相关实践学习
基于ECS搭建云上博客
本实验教您如何在ECS云服务器(Alibaba Cloud Linux 3)的环境下,通过部署LAMP环境并安装WordPress快速搭建个人博客。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1482 1
|
前端开发 安全 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客户端
1802 4
基于springboot+vue开发的会议预约管理系统
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
727 6
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
1335 13
|
Prometheus 监控 Cloud Native
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务
Docker 部署 Prometheus 和 Grafana 监控 Spring Boot 服务实现步骤
1110 0
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
1069 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
614 1
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
3132 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型