springboot+vue前后端分离项目-项目搭建9-服务器上安装部署

一、配置优化

1. 新增vue/public/static/config.js文件配置服务端ip地址,在index.html中引入,views里使用这个地址拼接url

 富文本编辑器同步修改

2.新增application-prod.properties,配置如下内容,区分测试环境和正式环境的数据库和文件地址,原有的application.properties里增加spring.profiles.active=prod,可以让application-prod.properties生效(先让prod生效,后打包,打包后再修改需要到demo-0.0.1-SNAPSHOT.jar\BOOT-INF\classes路径下找配置文件改)

spring.datasource.url=jdbc:mysql://192.168.198.132:3306/springboot-vue?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
spring.datasource.username=root
spring.datasource.password=XXXXX

file.ip=192.168.198.132

3. 修改com/example/demo/controller/FileController.java,引用配置文件里配置的ip

4. 配置修改后本地启动测试,验证没问题后打包

二、前端打包

1.进入到项目路径下,npm run build命令打包,打包后生成dist文件夹

 

 2.dist文件传到服务器上,dist/static/路径下 vi config.js修改地址为服务器ip(先打包,可在服务器上修改)

 三、后端打包

 1. 打包springboot项目,依次clean、compile、package,打包完成后会生成target/demo-0.0.1-SNAPSHOT.jar文件

 2. jar包传到服务器上之后,使用nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &命令启动,启动后报错,

 查看服务器jdk版本,发现版本过低,参照https://www.cnblogs.com/xiexieyc/p/18288687

 jdk21生效效果:

 3.再使用nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &命令启动成功(我的springboot项目创建时选的是jdk17版本,21版本可以启动,jdk应该是向下兼容的)

 4.前端dist只需要修改文件上传地址就可以,前端不需要启动,参照https://www.cnblogs.com/xiexieyc/p/18289221安装nginx,配置nginx,查看nginx.conf,修改user为root(不修改会报权限错误),配置文件发现引用include /etc/nginx/conf.d/*.conf;修改default.conf文件

 5. 配置之后启动,本次测试curl http://localhost:80,可以返回html数据,查看80端口已经监听,用windows服务器访问无法访问,telnet ip 80端口也不能链接,说明网络被限制,参照https://www.cnblogs.com/xiexieyc/p/18299631,配置防火墙开放端口

 

 6.测试前端访问成功,无法登录,查看日志有报错,因为mysql还没有创建schema和数据迁移

7.数据库迁移数据,服务器数据库创建schema,与本地数据库命名一样,然后表复制到服务器数据库

8. 测试登录成功,测试图片上传功能也都正常

9.总结

192.168.198.132nginx启动监听80端口,配置/路径对应前端的dist包的index.html,api请求转发到后端http://localhost:9090/

网络访问过程:

浏览器访问http://192.168.198.132(默认80端口)

匹配到前端应用静态文件返回登录页

登录提交访问http://192.168.198.132/api/user/login,先到nginx,匹配到api请求,转换成http://localhost:9090/user/login,访问后端服务返回数据到nginx,nginx再返回数据到浏览器

文件上传过程:

浏览器访问登录进入到http://192.168.198.132/book列表页,编辑,上传

上传时不经过nginx,直接访问文件处理服务,文件处理存储后返回文件路径

编辑后更新,将文件路径等数据提交到nginx,nginx匹配到api请求,转换成http://localhost:9090/xxxxx,提交到后台

10. 总结2:本地开发时vue.config.js文件是本地配置,配置前端访问端口9876,/api可转换成http://localhost:9090

 打包dist文件后上传到服务器,这部分配置就用nginx实现,端口用nginx的端口80,/api/可转换成后端服务的访问ip端口

 

posted @   少年阿川  阅读(438)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示