【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

news2024/9/23 9:30:43

这篇博客写在凌晨 4 点 20 分,这个时候我刚线上部署完成 web 项目,自己写的全栈项目
这个点儿,也睡不着了,索性就写篇博客记录一下

一、踩坑实录

这个是 最重要的,所以写在前面

Nginx 配置文件

location

location /admin {
            
     root   /home/project/backstage/dist; 
     index  index.html index.htm;
 }

这里最坑的是 root 指令,root 就是代替host的,
在这里插入图片描述
如你所见,它最终访问的路径就是 /home/project/backstage/dist/admin ,然后 index 指令会在此目录下搜索 index.html,所以如果存在index.html,那么最终访问到的就是 /home/project/backstage/dist/admin/index.html

(我刚开始想当然的认为,/admin 路径 会转发到 /home/project/backstage/dist,这里害得我把nginx 配置文件学了遍,最后在一个 nginx 部署实战课视频里面,才知道有这么一遭,所以真不能想当然。)

接口调用关系的设计

  1. 我开发使用的操作系统是 windows,部署到服务器的时候,后端还行,只需要修改上传图片的存储路径;但是前端用到的请求路径就多了,需要做较多修改。
  2. 最终我采用的方案是:
    • 后端接口前统一加上/api,比如 /api/product
    • 前端门户系统,使用80端口
    • 前端后台系统,使用81端口
    • 之所以采用两个接口,是因为门户系统和后台系统结构极为相似,比如 index.html 都需要加载 /assets 下的文件,如果使用同一个接口,那么这里就非常不好处理,我尝试过用正则表达式捕获组解决这个问题,但水平有限,无效。
    • 事实证明,把它们分开是明智的,因为后面就比较顺利了。

前端代码的请求地址方面耦合得比较严重,后续要想办法解耦

二、总结经验

  1. 使用 linux 系统进行开发,这样就不需要再部署的时候,修改路径了。
  2. 编写代码时,要注意对文件路径和请求路径解耦
  3. 可以考虑使用docker来解决部署上线的问题,因为这样部署太麻烦了,需要很多次修改。

三、整体思路

最后说一下web 项目整体部署思路吧

1. 在本地开发后,先在本地部署测试,之后再线上部署,这样更容易查找问题

2. 安装MySQL,把本地的MySQL的结构和数据复刻到云服务器(这很简单,直接导出sql就可以)

3. 部署后端(java -jar *.jar --server_name=8080)

4. 编译前端文件(yarn build)上传到云服务器

5. 安装 nginx,根据自己需要,修改配置文件,主要是设置server,还有一个client_max_body_size 设置文件上传大小限制的。

困了,写得有点乱,休息睡觉,狗命要紧,以后有机会再梳理和扩展一下此博客
这是我退伍之后又一次开发了全栈项目,之前的一次全栈经历还是上学的时候嘞,有点纪念意义,故作此篇。

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

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

相关文章

如何做系统架构?从动态系统思考的角度

在动态系统思考的背景下,系统架构不再只是一个静态的、结构化的设计,而是一个随着时间推移、基于不同要素互动产生涌现行为的动态过程。系统架构师的任务不仅仅是定义系统的形态和结构,更是通过剖析系统的互动网络、功能涌现和使用场景&#…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《计及抢修人员调度的配电网信息-物理协同恢复策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

个人随想-向量数据库,你到底应该选择谁?

随着大模型的新起,vectorstore这1、2年也非常的火。从以前只能用chroma到现在几十种向量数据库,选都选不过来。 以我接触过的很多公司来说,他们去选择向量数据库的时候,很多都和迷茫,不知道应该选择哪个向量数据库&am…

MySQl篇(数据类型)(持续更新迭代)

目录 常见类型一:数值类型 常见类型二:字符串类型 一、文本字符串类型 1. char & varchar 1.1. CHAR(M)类型 1.2. VARCHAR(M)类型 1.3. 两者应用 2. enum & set 二、二进制字符串类型 1. BINARY & VARBINARY类型 2. 二进制字符串和…

C++ IO框架

文章目录 I/O 复用概述I/O 模型一个输入操作的两个阶段 select 函数概述详细解析函数内容详解select总结 poll 函数概述详细解析函数内容详解 epoll 函数概述基础API注意事项总结一下select, poll, epoll的区别 Reactor 和 Proactor概述概念服务器连接多个客户端的业务场景解决…

【DVWA】——File Upload(文件上传)

📖 前言:文件上传漏洞是由于对上传文件未作过滤或过滤机制不严(文件后缀或类型),导致恶意用户可以上传脚本文件,通过上传文件可达到控制网站权限的目的。 目录 🕒 1. Low🕒 2. Mediu…

Window10安装多智能体强化学习平台(SMAC)

基本步骤可以参照博客:window10安装多智能体强化学习平台(SMAC)_conda如何安装smac库-CSDN博客 注意1:上面所涉及的python第三方库版本不一定要安装博客指定版本。 注意2:星际争霸需要安装国际服(国服不支持)&#x…

Redisson实现分布式锁(看门狗机制)

目录 可重入锁: 锁重试和看门狗机制: 主从一致性: 首先引入依赖,配置好信息 3.使用Redisson的分布式锁 可重入锁: 可重入锁实现是通过redsi中的hash实现的,key依旧是业务名称加id,然后第一个…

正式发售!《黑神话:悟空》背后的技术力量——UE5与实时云渲染

千呼万唤始出来,《黑神话:悟空》终于在今年8月发售了,相信大家都已经玩起来了! 作为国产游戏的画质巅峰之作,《黑神话:悟空》凭借其令人叹为观止的画面质量和游戏体验,赢得了广泛的好评。这一切…

实时监控分析广告数据跳转统计平台源码

广告跳转实时分析页面统计系统,可选择生成html页面样式,可自定义设置页面域名后缀,可指定跳转指定网址, 可记录单个页面的访问记录,可对生成的单个链接进行备注,自定义等待时间进行跳转。 源码下载&#…

内网渗透- 内网渗透的基本知识

攻击流程讲解 内网介绍 内网也指局域网,是指在某一区域内由多台计算机互联而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等。内网是封闭的…

Python 课程11-Web 开发

前言 Web 开发已经成为现代软件开发的核心领域之一,许多应用程序和服务都通过 Web 来与用户和其他系统交互。Python 作为一门广泛使用的编程语言,提供了多种 Web 开发框架,其中最流行的两个框架是 Flask 和 Django。 Flask 是一个轻量级的 W…

Dubbo SPI源码

文章目录 Dubbo SPI使用方式AOP功能源码剖析SPI注解1.获取加载器2.获取拓展实例对象3.创建拓展类的实例对象 Dubbo SPI Dubbo 的 SPI(Service Provider Interface)机制是一种强大的扩展机制,它允许开发者在运行时动态地替换或增加框架的功能。…

2-95 基于matlab的模板定位

基于matlab的模板定位。利用①相关匹配(Correlation Matching)、②基于Hausdorff距离匹配方法 及③考虑对场景图象距离变换(Distance Transform)的Hausdorff距离匹配方法,实现模板目标在场景图象中的定位。程序已调通,…

XShell快速连接虚拟机(Ubuntu系统)

目录 前言 一 (XShell)(虚拟机 )(Ubuntu)下载 二 虚拟机的ip查找 三 虚拟机中安装连接环境 四 开启ssh-server服务 五 验证是Ubuntu是否开启ssh-server服务 六 连接XShell软件 前言 对于刚开始探索 Linux 世界的新手来说,拥有一台自己的服务器可能并不现实。幸运的…

linux服务器配置及服务器资源命令使用查看

在做i性能压测之前,所了解的服务器配置:CPU、内存、硬盘、网络 一、查看cpu信息 常用命令:cat /proc/cpuinfo或者lscpu、pidstat等 需要关注的: Architecture: x86_64 # 架构信息,表示系统的CPU架构为x86_64&#…

业务资源管理模式语言14

第三节:在前面讨论的Resource Transcations(资源事务)中有许多共同的行为。其中一个行为可以包含多个项目,每个项目对应一个不同的资源(ItemizeTheResourceTransaction(11)。事务可以产生一些报…

GitLab权限及设置

之前很少关注这些,项目的权限,一般由专门的管理人员设置。 但自己创建的项目自己可以设置权限。下面是一些笔记。 GitLab中用户权限_gitlab 权限-CSDN博客 开发中遇到要将自己这块的代码上传到Git,由其他组的同事拉取后继续开发。上传代码后…

【JVM】概述

前言 Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三方Java框架(如Spring、MyBatis等)构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富&…

Oracle从入门到放弃

Oracle从入门到放弃 左连接和右连接Where子查询单行子查询多行子查询 from子句的子查询select子句的子查询oracle分页序列序列的应用 索引PL/SQL变量声明与赋值select into 赋值变量属性类型 异常循环游标存储函数存储过程不带传出参数的存储过程带传出参数的存储过程 左连接和…