由于最近在学习 SpringBoot 以及 Vue 所以想找一个项目练习一下,顺便搭一个个人博客进行练习
本篇文章比较偏向日志,如果需要具体的解决方法可以搜索其他文章
0. 项目打包
其实这一点没什么可以多说的 springboot 项目在 idea 中执行 package
,vue 项目在 webstorm 中执行 npm run build
springboot 项目打包生成[target].jar
,vue 项目打包生成dist
文件夹
得到三个文件[夹]后(vue 项目是前台和后台管理两个项目)准备部署
1. 环境准备
前端项目需要用nginx
进行转发,后台 api 的 springboot 项目使用mysql
数据库以及redis
缓存,服务器使用阿里云,图床使用七牛云
1.1 设置七牛云
这一项应该在对后端打包前完成
七牛云注册后,创建实例会赠送 10G 的免费流量,创建实例并将测试域名、accessKey、secretKey 以及 实例名称复制到 springboot 的相关设置项即可。
使用测试域名只有 30 天的有效期,由于我的域名暂时还未过审,只能先使用测试域名
1.2 设置阿里云
首先要有钱买一个服务器(我也只能用最便宜的学生优惠机了)
远程 ssh 连接实例,安装 mysql
设置用户名和密码,我就简单的设置了一个密码用户直接用 root
了
安装 redis
,我安装的时候不停报错,还是要搜索一下安装方法,不过我也不做过多的配置就直接用了,即使这样在安装的时候各种环境变量也快把我弄疯了。
安装 nginx
,做前端的请求转发,这里安装倒是没什么问题,但是在配置的时候,由于我想在一台服务器上安装两个项目而且想做到后台界面是前端的一个子界面即
http://ip/ http://ip/backend
的效果,因此又折腾了一堆前后访问的配置。
2. 部署
把两个前端项目的 dist
以及后端打包的 jar
上传,在nginx
中配置前端的项目路径,用命令nginx -s reload
重启 nginx; 用java -jar [target].jar &
后台运行打包好的 Java 程序
3. 总结
本身这篇文章是想对我折腾了几个星期的部署做一个小记录,可能没啥内容,如果时间允许,后期我会针对每一个小细节都写一篇记录一下(主要是怕忘……)。
TMI
- 如果你看过原项目一定知道原项目还实现了搜索功能,但是我把它去掉了,原因很简单,不是我不想写,而是服务器不允许打开
ElasticSearch
,如果打开之后后端和搜索服务一起被杀掉了,2G 小内存伤不起啊- 不是我不知道
mysql
redis
ElasticSearch
RabbitMQ
nginx
这些用分布式部署就解决了,是我的荷包不允许我再开实例了。