作者:陈剑冬  历史版本: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地址替换为您服务器的地址

http://192.168.2.230/core