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

news2024/11/26 10:26:10

前端打包部署

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

前端打包

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VVfwZBh1-1682389526941)(assets/image-20230424222734600.png)]

修改生产环境配置文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9ZdVfXc-1682389526941)(assets/image-20230424223046456.png)]

修改配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9rp3bajg-1682389526942)(assets/image-20230424223744825.png)]

运行命令进行打包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OWEkfjTP-1682389526942)(assets/image-20230424223455409.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WmDmXsr6-1682389526942)(assets/image-20230424223555260.png)]

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MSspBsLc-1682389526943)(assets/image-20230424223635291.png)]

前端部署

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

nginx部署

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrZUX5ao-1682389526943)(assets/image-20230424230414183.png)]

在这里插入图片描述

修改配置文件
在这里插入图片描述
在这里插入图片描述

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包运行的输出

  2. -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包执行

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于二阶锥规划(SOCP)松弛和线性离流的配电网规划(DNP)方法示例(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 配电网最优潮流 Optimal Power Flow, OPF) 问题是指在满足一定约束条件的情况下&#xff0c;通过控制配电网中的可控变量&…

内网Nexus代理docker-ce(yum) 源私有仓库 + 内网设备配置(centos)

配置docker-ce源 这里也是以阿里云的docker-ce源为例。 源地址为&#xff1a;https://mirrors.aliyun.com/docker-ce/linux/centos 1、在nexus上配置代理 Nexus上创建Blob Stores 创建Repositories 点击设置 - -> Repositories -- > Create repository --> yum(p…

分布式消息队列Kafka(二)- 生产者

1.生产者消息发送流程 &#xff08;1&#xff09;消息发送原理 ​ 在消息发送的过程中&#xff0c;涉及到了两个线程——main线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c;Sender 线程不断…

刘浩:当谈到RTO < 8s时,OceanBase究竟在说什么?

本文为 OceanBase 高级技术专家刘浩在第一届 OceanBase 开发者大会带来的分享。欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 3 月 25 日&#xff0c;第一届 OceanBase 开发者大会在北京举行&#xff0c;OceanBase 高级技术专家刘浩为大家带来了…

VuePress打包后没有样式或者没有图片或者js加载失败

原因是没有部署到服务器上&#xff01;&#xff01;&#xff01; 这可能是我们打包后的东西 直接点击index.html 变成这样了&#xff01;&#xff01;什么样式都没有了&#xff0c;怎么办那&#xff1f; 很简单&#xff0c;找个服务器部署以下就什么都有了&#xff01;&…

NC 打开系统提示“安全日志数据源异常,请联系环境管理员处理”

问题&#xff1a;NC 用的是sql sever数据库&#xff0c;在sysConfig中正常配置好数据源后&#xff0c;点击测试&#xff0c;测试通过&#xff0c;但是打开系统后还提示“安全日志数据源异常&#xff0c;请联系环境管理员处理”&#xff0c;如下图&#xff1a; 原因&#xff1a;…

echarts 画中国地图

数据可视化平台&#xff0c;中国各省数据和坐标 阿里云可视化 效果 使用echart画中国地图&#xff0c;步骤如下 1.安装依赖 npm i echarts4 创建一个js文件 当你可以访问https请求的时候则使用&#xff0c;如下代码 import axios from "axios"; export default a…

网络安全SSRF漏洞 检测

SSRF 检测的一些思考 DNS 平台没有立刻收到请求&#xff0c;是在之后的某个时间段收到了不同的请求信息&#xff0c;这至少表明了一点&#xff0c;此处存在有无回显的 SSRF&#xff0c;虽然想要证明有更大的危害比较困难&#xff0c;但是至少说明了存在有 SSRF 的风险&#xf…

AI机器人ChatGPT使用体验(注册,使用,简易方式)

最近ChatGPT很火 号称下一代搜索引擎 吊打谷歌百度 它可以做到代替很多职业 究竟有多厉害呢&#xff1f; 看看这个例子&#xff1a; 你问他答&#xff0c;是不是感觉啥都知道&#xff1f; 文员、程序员全被打败 这个究竟怎么用呢&#xff1f; 注册 国内99%的人都卡在了…

超详细Docker的安装以及Docker部署C++

系列文章目录 这学期&#xff0c;学校开了一门云计算大数据课程&#xff0c;老师要求从OpenStack、Hadoop、Docker等软件进行部署一个框架。 我去从中选择了一个Docker&#xff0c;来对这个作业进行实现。以下就是我对这次作业的实现过程以及注意事项&#xff0c;还有犯的错误总…

牛客网Verilog刷题——VL27

牛客网Verilog刷题——VL27 题目答案 题目 请编写一个序列检测模块&#xff0c;检测输入信号&#xff08;a&#xff09;是否满足011100序列&#xff0c; 要求以每六个输入为一组&#xff0c;不检测重复序列&#xff0c;例如第一位数据不符合&#xff0c;则不考虑后五位。一直到…

【C++】反向迭代器的设计

前言 STL中不少的容器需要有迭代器这样的设计&#xff0c;特别是正向迭代器&#xff0c;几乎每个容器都有自己的特定实现方式&#xff0c;有了正向迭代器之后&#xff0c;我们还要提供反向迭代器以供一些特殊的需求&#xff0c;但是许多容器的正向迭代器实现的方式不一样&#…

华东师范大学副校长周傲英:未来,中国需要什么样的数据库?

本文为华东师范大学副校长&#xff0c;CCF 会士周傲英教授在第一届 OceanBase 开发者大会带来的分享。欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 3 月 25 日&#xff0c;第一届 OceanBase 开发者大会在北京举行&#xff0c;华东师范大学副校…

AI智能智能课程第四讲 -数据库领域专家

使用chatGPT让你成为数据库领域专家 作业 现在要测试电商的下单功能&#xff1a;测试员张三在公司的电商平台上下了几个单&#xff0c;现在需要验证&#xff1a;张三这个客户下单的所有订单信息&#xff0c;包含订单编号&#xff0c;商品名称&#xff0c;商品价格&#xff0c;…

什么是gpt4-如何用上gpt-4

gpt4主要强化了哪些功能 OpenAI尚未公布GPT-4的详细信息&#xff0c;不过可以根据OpenAI前CEO Sam Altman在2020年所发表的一篇博客中提到的&#xff0c;GPT-4可能会具有更强大和智能的能力&#xff0c;包括更准确的理解和表达自然语言、更高效的记忆和推理、更全面的知识和视…

thinkphp:数值(保留小数点后N位,四舍五入,左侧补零,格式化货币,取整,生成随机数,数字与字母进行转换)

一、保留小数点后N位/类似四舍五入&#xff08;以保留小数点后三位为准&#xff09; number_format()函数&#xff1a;第一个参数为要格式化的数字&#xff0c;第二个参数为保留的小数位数 方法一&#xff1a; public function test() {$num 12.56789; // 待格式化的数字$r…

Maven配置阿里云仓库

Maven简介&#xff1a; Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外&#xff0c;还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性&#x…

QMS-云质说质量 - 11 我和我的客户投诉(3) - 明枪易躲 暗箭难防

云质QMS原创 转载请注明来源 作者&#xff1a;王洪石 君子思义 小人贪利 金庸老先生在《笑傲江湖》中写道&#xff0c;“只要有人的地方就有恩怨&#xff0c;有恩怨就会有江湖&#xff0c;人就是江湖。”这句话映射到现实社会中&#xff0c;就是“社会险恶&#xff0c;人心叵测…

链表(JS实现、LeetCode例题)

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;数据结构与算法 &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 链表链表的分类创建链表LinkedList类的骨架 实现链表的方法push尾部添加元…

『网络基础 一 』

目录 网络发展 认识 “协议” 网络协议初始 协议分层 OSI七层模型 TCP/IP五层&#xff08;或四层&#xff09;模型 网络传输基本流程 ​编辑 协议报头 数据包封装和分用 网络中的地址管理 认识IP地址 认识MAC地址 网络发展 独立设计&#xff1a;计算机之间的相互独立…