赞
踩
第一种方式较容易,也无需进行服务器跨域的相关配置。第二种方式稍微复杂些,需要在 Nginx 下配置跨域时的端口转发。本文将介绍后者(使用宝塔可视化式部署)。在该方式下,后端 Spring Boot 使用内嵌的 Tomcat 运行,前端 Vue 则需要借助 Nginx 运行(需完成跨域时的请求端口转发)。所以部署前需要在服务器上安装 Nginx 环境。
进入到宝塔后台界面中,创建一个数据库(与项目中使用的数据名一致),同时访问权限设为所有人:
在本地上可以使用 Navicat 或 SQLyog 将数据库转储为 sql 文件,这里以 SQLyog 为例:
导出选项选择结构和数据,完成后便可将我们本地数据库的所有记录导出为一个 sql 文件
然后,进入到宝塔数据库面板中,点击刚刚创建的数据库的右侧管理按钮,进入到 phpMyAdmin 界面
在此导入运行我们刚刚在本地导出的 sql 文件即可
ps:宝塔与阿里云需开放 888 端口(phpMyAdmin 默认端口)
在 Spring Boot 项目的配置文件中写多一个线上环境,再将环境激活为线上环境,如下所示:
spring: profiles: active: online --- spring: profiles: local datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver server: port: 8081 --- spring: profiles: online datasource: username: 云数据库用户名 password: 云数据库密码 url: jdbc:mysql://服务器ip:3306/数据库名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver server: port: 8081
其中 online
环境下的用户名和密码为步骤 1 中服务器上创建的数据库的用户名和密码
当我们将数据库环境修改为服务器上的参数时,若直接通过 maven 打包可能会报错,此时可采用如下命令打包:
mvn clean package -Dmaven.test.skip=true
该命令会跳过打包前的测试,可以确保打包成功
把 Spring Boot 项目的 jar 包上传至服务器任意目录,然后在该目录下打开终端
linux 上后台运行 jar 的命令如下(后面跟上 Spring Boot 项目的 jar 包名称):
nohup java -jar springbootJar 包名.jar >log.txt &
ps:要注意确保端口可以访问,即阿里云与宝塔的端口放行
在终端中输入如下命令可以看到我们运行的项目进程:
ps -ef | grep java
如果需要停止运行,则采用如下命令根据端口杀死进程,其中的端口号为 Spring Boot 项目的运行端口号:
sudo fuser -k -n tcp 8080
首先需将前端的请求前缀统一加上 /api
,然后进入到 Vue 项目的 config
目录下的 index.js
进行如下相关修改:
上图是配置前端请求的转发代理,target
修改为后端项目的运行地址,changeOrigin
表示允许跨域
上图修改的是静态资源访问的路径,需修改为 ./
表示当前路径
然后输入如下命令打包项目:
npm run build
此时会看到生成的 dist
文件夹
修改 dist 为项目名称,然后上传到服务器上的 Nginx 下的 html 目录下
进入到 Nginx 的配置文件中,新增如下修改:
上面主要用于配置项目的访问路径以及跨域时端口转发的处理,最下方是将请求中的 /api
前缀转发到 Spring Boot 项目的运行端口。到此为止,整个项目便部署完成,通过 公网ip:vue项目端口号/项目名称
运行即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。