ps:后端代码中已有打包好的前端js包,若未修改前端代码,可跳过此打包步骤
- 打开控制台,安装node
- 安装ykit,运行npm install ykit -g
- 控制台进入前端代码根目录,执行ykit p -mc
- 将打包好的prd文件夹下的lib@dev.js、manifest@dev.js、index@VERSION.js、login@VERSION.js复制到后段代码静态资源下的lib.js文件夹中,并修改templates文件下的index.html的scripts引用
ps:minio作为系统存储容器,用来存储用户上传的文件
地址: https://dl.min.io/server/minio/release/linux-amd64/minio
- wget https://dl.min.io/server/minio/release/linux-amd64/minio
- chmod +x minio
- ./minio server /data
地址: https://dl.min.io/client/mc/release/linux-amd64/mc
- wget https://dl.min.io/client/mc/release/linux-amd64/mc
- chmod +x mc
- ./mc --help
./mc config host add minio服务器别名 minion服务器url:port minio服务器accesskey minio服务器secretKey S3v2
在实际操作中,发现使用minio的分享文件功能,最多支持分享7天,对于“需要根据有规律的url来直接访问文件”这一需求显然不满足。对于“需要设置永久下载链接并根据url直接访问”这一要求,需:
- 在minio客户端添加一个云存储服务
- 设置开放管理: ./mc policy public minio服务器别名/bucket名
ps1:redis用于统一管理session,避免系统集群部署时用户多次登录 ps2:以下步骤部署三台redis,多个哨兵,实际部署时可根据情况更改
yum install epel-release
yum install redis
IP1: 主redis - /etc/redis.conf:
#bind 127.0.0.1
port 6379
protected-mode no #为了能够远程连接
requirepass 所设密码
masterauth 所设密码
IP2,IP3: 从redis - /etc/redis.conf:
#bind 127.0.0.1
port 6379
protected-mode no #为了能够远程连接
slaveof IP1 6379 #主redisIP地址及端口号
requirepass 所设密码
masterauth 所设密码
哨兵1: /etc/redis-sentinel.conf:
port 26379
sentinel monitor mymaster IP1 6379 2 #2表示至少需要2个哨兵同意才能启用从redis
protected-mode no #为了能够远程访问
sentinel auth-pass mymaster 所设密码
哨兵2: 复制redis-sentinel.conf文件,命名为redis-sentinel2.conf:
port 26380
sentinel monitor mymaster IP1 6379 2 #2表示至少需要2个哨兵同意才能启用从redis
protected-mode no #为了能够远程访问
sentinel auth-pass mymaster 所设密码
redis-server redis.conf
redis-sentinel redis-sentinel.conf
redis-sentinel redis-sentinel2.conf
redis-cli -p 26379 进入哨兵端口
sentinel master mymaster 查看master情况
sentinel sentinels mymaster 查看其他哨兵信息
- 控制台进入 文件根目录/xxljob/文件夹
- 执行 “mvn clean package -Dmaven.test.skip=true” 命令,得到xxl-job.jar包
- 执行 “java -jar xxl-job.jar” 命令,部署xxl-job
进入 文件根目录/src/main/resources/resources.{env}/,修改application.yml
datasource:
url: jdbc:postgresql://{ip}:{端口}/{数据库名}
driver-class-name: org.postgresql.Driver
username: {username}
password: {password}
redis:
host: {主redis部署ip}
port: {端口}
sentinel:
master: mymaster
nodes: {redis哨兵部署ip}:{端口},{redis哨兵部署ip}:{端口},...
xxl:
job:
admin:
addresses: http://{ip}:{端口}/{路径}
executor:
# 执行器"AppName"和地址信息配置:AppName执行器心跳注册分组依据;地址信息用于"调度中心请求并触发任务"和"执行器注册"。执行器默认端口为9999,执行器IP默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用。单机部署多个执行器时,注意要配置不同执行器端口;
appname: oa
ip:
port: {执行器端口号}
# xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler 执行器运行日志文件存储的磁盘位置,需要对该路径拥有读写权限
logpath: ./
# 执行器Log文件定期清理功能,指定日志保存天数,日志文件过期自动删除。限制至少保持3天,否则功能不生效;
logretentiondays: -1
### xxl-job, access token 执行器通讯TOKEN,非空时启用
accessToken:
minio:
url: http://{ip}:{端口}
accessKey: {通行码,部署minio时显示}
secretKey: {密码,部署minio时显示}
bucketName: {所创建bucket名}
mail:
host: {邮箱服务器地址,eg:smtp.163.com}
username: {用户名,eg: ***@163.com}
password: {密码}
控制台进入文件根目录,执行 “mvn clean package -Dmaven.test.skip=true”打包命令,执行成功后在target目录下生成superoa.jar文件 执行 “java -jar superoa.jar” 命令,部署项目