作者:陈剑冬 历史版本:1 最后编辑:陈剑冬 更新时间:2024-06-12 11:20
1. 依赖组件
- 关系数据库 [ postgresql / mysql / dameng ]
- 缓存数据库 [ redis ]
- 文件存储 [ minio ]
2. 初始化工作
2.1. 部署包结构
|-- deployment # 部署包目录命名根据实际版本和发布日期会有所不同
| |-- base-service # 底座服务目录
| | |-- java-base # 底座后端微服务
| | | |-- gateway # 网关服务
| | | | |-- base-gateway-provider-[ version ]-[ SNAPSHOT / RELEASE ].jar
| | | | |-- bootstrap.yml # Nacos连接配置
| | | | |-- app.sh # 运行支撑脚本
| | | | |-- start.auth.sh # 启动服务脚本
| | | |-- auth # 认证鉴权服务
| | | | |-- base-auth-provider-[ version ]-[ SNAPSHOT / RELEASE ].jar
| | | | |-- bootstrap.yml # Nacos连接配置
| | | | |-- app.sh # 运行支撑脚本
| | | | |-- start.auth.sh # 启动服务脚本
| | | |-- platform # 平台服务
| | | | |-- base-platform-provider-[ version ]-[ SNAPSHOT / RELEASE ].jar
| | | | |-- bootstrap.yml # Nacos连接配置
| | | | |-- app.sh # 运行支撑脚本
| | | | |-- start.auth.sh # 启动服务脚本
| | | |-- datasource # 数据源数据集服务
| | | | |-- base-datasource-provider-[ version ]-[ SNAPSHOT / RELEASE ].jar
| | | | |-- bootstrap.yml # Nacos连接配置
| | | | |-- app.sh # 运行支撑脚本
| | | | |-- start.auth.sh # 启动服务脚本
| | |-- nacos-import # Nacos初始化配置文件
| | | |-- |-- nacos_config_export_base.zip
| | |-- sql-init
| | | |-- postgresql
| | | | |-- 1.2.0 # 初始化脚本对应的版本号
| | | | | |-- DDL # 结构初始化脚本
| | | | | | |-- 0_DDL_BASE.sql
| | | | | |-- DML # 数据初始化脚本
| | | | | | |-- 0_DML_BASE.sql
| | | |-- mysql
| | | | |-- 与postgresql结构一致
| | | |-- dameng
| | | | |-- 与postgresql结构一致
| | |-- ui-base # 微前端
| | | |-- html # 微前端-基座工程
| | | |-- child # 微前端-子工程目录
| | | | |-- child-core # 微前端-核心工程
2.2. nacos配置
2.2.1. 导入配置
请将 base-service/nacos-import/nacos_config_export_base.zip 导入nacos当中
2.2.2. 修改配置
启动后端服务之前需要做连接信息初始化
2.3. 数据库初始化
初始化数据库表结构与数据,初始化SQL所在目录 base-service/sql-init
先刷 DDL表结构,再刷 DML表数据
3. 后端部署
3.1. 后端服务列表
- gateway 微服务网关 [ 请求分发 ]
- auth 认证服务 [ 登录认证 ]
- platform 平台服务 [ 用户、组件、角色、岗位、团队、安全等等 ]
- datasource 数据源服务 [ 数据源、数据集 ]
3.2. 修改bootstrap.yml
请修改各后端服务目录的 bootstrap.yml 文件
- base-service\java-base\gateway\boostrap.yml
- base-service\java-base\auth\boostrap.yml
- base-service\java-base\platform\boostrap.yml
- base-service\java-base\datasource\boostrap.yml
修改位置图示
3.3. 放置授权
我司会提供一个授权文件给您,文件名称为 license.lc,放置目录如下:
- base-service\java-base\gateway\license.lc
- base-service\java-base\auth\license.lc
- base-service\java-base\platform\license.lc
- base-service\java-base\datasource\license.lc
3.4. 启动服务
请执行以下启动脚本,无先后顺序要求
- base-service\java-base\gateway\start.gateway.sh
- base-service\java-base\auth\start.auth.sh
- base-service\java-base\platform\start.platform.sh
- base-service\java-base\datasource\start.datasource.sh
如需要修改内存占用,可以修改对应的 start.sh 脚本
4. 前端部署
4.1. nginx配置
4.1.1. 放置部署包
请将 base-service/ui-base 目录下的所有文件拷入 nginx中间件 的 html 目录当中
放置后目录结构如下
|-- html # Nginx中间件的html目录
| |-- html # 微前端-基座
| |-- child # 微前端-子工程目录
| | |-- child-core # 微前端-核心子工程
4.1.2. 修改 nginx.conf 配置
4.1.2.1. 配置文件示例
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# 允许header带下划线
underscores_in_headers on;
# body大小限制
client_max_body_size 128M;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 650;
proxy_headers_hash_max_size 512000;
proxy_headers_hash_bucket_size 64000;
# gzip部分
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/xhr application/json application/x-httpd-php image/jpeg image/gif image/png application/javascript;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
# include /etc/nginx/conf.d/*.conf;
server_tokens off;
map $http_ungrade $connection_upgrade {
default Upgrade;
'' close;
}
#网关部分
upstream gateway1 {
server 192.168.2.230:999;
}
server {
listen 80;
charset utf-8;
# 安全漏洞扫描修复
# add_header Content-Security-Policy "default-src 'self' www.baidu.com 'unsafe-inline' 'unsafe-eval' blob: data: ;";
# 防XSS攻击
add_header X-Xss-Protection "1;mode=block";
# 禁止服务器自动解析资源类型
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy 'no-referrer';
add_header Strict-Transport-Security max-age=31536000;
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Download-Options noopen;
add_header X-Frame-Options SANEORIGIN;
#微服务接口转发
location /gateway {
proxy_pass http://gateway1/;
}
location /auth {
proxy_pass http://gateway1;
}
location /platform {
proxy_pass http://gateway1;
}
location /datasource {
proxy_pass http://gateway1;
}
#微前端-主应用
location / {
root /mnt/nginx/base-line-project/html;
add_header Access-Control-Allow-Origin *;
if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
add_header Cache-Control max-age=7776000;
add_header Access-Control-Allow-Origin *;
}
try_files $uri $uri/ /index.html;
}
#微前端-子应用 core
location /child-core {
root /mnt/nginx/base-line-project/child;
add_header Access-Control-Allow-Origin *;
if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
add_header Cache-Control max-age=7776000;
add_header Access-Control-Allow-Origin *;
}
index index.html;
try_files $uri $uri/ /child-core/index.html;
}
}
}
4.1.2.2. 配置文件需要修改的部分
- upstream gateway1 的具体网关地址
根据 nacos 服务列表 gateway-provider 显示的具体ip和port来修改
- location root 当中前端文件所在的正确目录
4.1.2.3. 重启nginx,访问系统
systemctl restart nginx
请将IP地址替换为您服务器的地址