当前位置: 首页 > news >正文

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

这篇博客写在凌晨 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.mrgr.cn/news/27844.html

相关文章:

  • 谷歌浏览器的自动翻译功能如何开启
  • ubuntu20.04 colmap 安装2024.11最新
  • Android ART知多少?
  • Vite初始化Vue3+Typescrpt项目
  • 系统架构师考试18天极限备考复盘(2024年11月)
  • 11-通信图建模测试
  • verilog运算符优先级
  • 堆排序,快速排序
  • C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)
  • Linux: virtual: qemu-kvm: top cpu usage的组成是否包含guest的使用?
  • 窗口嵌入桌面背景层(vb.net,高考倒计时特供版)
  • 基于双PI矢量控制结构和SVPWM的风力发电系统Simulink建模与仿真
  • C++线程库
  • (SERIES12)DM性能优化
  • web开发 之 HTML、CSS、JavaScript、以及JavaScript的高级框架Vue(学习版2)
  • 调用系统的录音设备提示:line with format PCM_SIGNED 16000.0 Hz
  • gingivitis
  • 超高速传输 -- 超通道Superchannel
  • [产品管理-20]:NPDP新产品开发 - 18 - 产品设计与开发工具 - 初始设计与规格定义
  • CSS3 过渡
  • 复习:数组
  • 滚雪球学SpringCloud[4.1讲]: Spring Cloud Gateway详解
  • 高教社杯数模竞赛特辑论文篇-2016年A题:基于极值优化的系泊系统设计(续)(附MATLAB代码实现)
  • SpringBoot:自定义异常
  • Git+Jenkins 基本使用(Basic Usage of Git+Jenkins)
  • C++ 访问限定符