部署教程
# 前置条件
# 数据库
# MySQL
MySQL 5.7
以上
已亲测8
版本没有问题
# PostgreSQL
已亲测15
版本没有问题
# Oracle
已亲测11g
版本没有问题
# 其他数据库
代码中仅用到了基础的SQL语法:LEFT JOIN
、INNER JOIN
、ORDER BY
、BETWEEN AND
、DISTINCT
这几个函数在MySQL
、PostgreSQL
、Oracle
上用法大致一致
其他数据库未经测试
如果其他数据库有问题,欢迎提交PR
# Redis
因为限流脚本使用到了 redis.replicate_commands()
命令,这个命令是Redis在3.2版本加入的,所以redis最低版本是3.2
Redis官方并没有提供windows版本,所以,需要使用其他人打包的Windows版本
# 开始
创建好数据库,并且导入 /doc/sql/***/myadmin.sql
和 /doc/sql/***/quartz_mysql.sql
修改application-dev.yml
中的数据库连接信息
、redis连接信息
启动项目,超级管理员账号密码为:admin/123456
# 部署教程
# 后端
1.需要使用java17、java21及以上版本
或者高性能jdk吗,例如azul
2.需要使用openjdk (opens new window)或者graalvm (opens new window)
3.不能使用oraclejdk
具体原因参考以下issues
springboot3 sa-token-jwt · Issue #I6BJ8R · dromara/Sa-Token - Gitee.com (opens new window)
# 前端
一般有3种方式部署,我一般使用第1种
# 第1种:通过nginx进行代理
通过nginx进行代理
打包命令npm run build:prod
在.env.production
中
# 接口根地址
# 配置nginx代理
VUE_APP_BASE_API='/prod-api/my'
nginx配置(仅供参考)
server{
listen 80;
server_name myadmin;
# 代理前端
location / {
root /www/wwwroot/myadmin_ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
error_page 405=200$request_uri;
}
# 代理后端
location /prod-api/ {
proxy_pass http://127.0.0.1:8033/;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
对于使用宝塔的用户来说,创建一个网站,把打包的dist
文件夹放进去,
然后点击网站后面的设置,点击配置文件
,
将以下内容放进去,保存即可
# 代理后端
location /prod-api/ {
proxy_pass http://127.0.0.1:8033/;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 解决刷新就404路由问题
location / {
try_files $uri $uri/ /index.html;
}
# 第2种:不代理,直接访问后端地址方式
直接写后端真实地址,这样会暴露后端地址,容易被攻击
打包命令npm run build:prod
在.env.production
中
# 接口根地址
# 不配置nginx代理,会暴露后端真实地址
# VUE_APP_BASE_API='http://192.168.213.130:8033/my'
# 第3种:将前端打包到后端的resources/static下
这种方式可以实现启动后端,即可访问前端
打包命令npm run build:spring
在.env.spring
中
- 修改
.env.spring
中的VUE_APP_BASE_API
和VUE_APP_CONTEXT_PATH
- 修改
router/index.js
中,mode改为hash
export default new Router({
base: process.env.VUE_APP_CONTEXT_PATH,
// history可以去掉url中的#,nginx部署请选择此项
// hash,将前端打包到后端springboot的static文件夹中时请选择此项
mode: 'hash',
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
- 打包dist
# 构建生产环境
npm run build:spring
- 将dist文件夹里的内容放到后端的
src/main/resources/static
- 设置后端,在
check-login.ignores
中添加以下内容
# 前端静态资源
- /index.html
- /favicon.ico
- /static/**
- /error
- 启动后端测试,例如后端设置的端口和根路径如下
# 测试环境
server:
port: 8033
servlet:
context-path: /my
那么后端跑起来之后,前端访问地址为http://127.0.0.1:8033/my