您的位置:首页 > 汽车 > 时评 > 【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

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

2024/11/17 17:44:53 来源:https://blog.csdn.net/weixin_41899098/article/details/142292134  浏览:    关键词:【退役之再次线上部署】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 设置文件上传大小限制的。

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com