# 二、准备工作

# 1. 系统准备

HOS相关产品的运行和使用,依赖于公司以下系统维护基础数据,需要提前部署并成功运行:

  • iMedical iBUS(李岩):通过服务总线发布、订阅系统之间的数据交互,HOS门户需要给服务总线给下游第三方系统推送帐号数据,如项目不需要给第三方推送帐号数据,可不做要求。

# 2. 安装文件下载

下载地址:请联系HOS应用研发组同事或者郑州技术支持同事获取。

HOS安装文件下载目录介绍:

├─程序版本                      #HOS程序应用,必须下载,选择子目录最新版本下载
├─hos-base-linux               #HOS环境文件,linux环境下使用,系统为linxu必须下载
└─hos-app                      #HOS基础应用,必须下载

提示

  • 程序版本根据需要下载,如无特殊要求,下载2.6.10。

# 3. 安装文件介绍

/hos-base-linux                          
├─jdk                                                #java应用,HOS后端应用运行必须环境,部署到后端服务器
├─redis                                              #缓存服务,HOS后端应用缓存存储使用,部署到数据/缓存服务器
├─nginx                                              #集群负载,前端跳转,部署在前端服务器
├─mysql                                              #数据库,部署在数据服务器
├─supervisor                                         #进程管理工具,部署在后端服务器
├─nacos                                              #配置管理和服务管理平台,部署在数据库/缓存/文件服务器
├─minio                                              #文件服务,部署在数据库/缓存/文件服务器
└─keepalived                                         #集群管理工具,集群部署时使用,部署在数据库服务器和前端服务器

/hos-app                          
├─hos-framework-job-admin                            #任务管理平台配置文件和jar
│  ├─config                                          #配置文件,根据项目情况更改
│  ├─hos-framework-job-admin.ini                     #后端应用启动文件
│  └─hos-framework-job-admin.jar                     #后端jar,部署运行
├─tools                                              #小工具
│  ├─ssl                                             #生成https证书的工具
│  ├─HeidiSQL_12.5_64bit_Portable.7z                 #数据库管理工具,可免安装使用
│  ├─mysql-backup.sh                                 #数据库备份脚本
│  ├─resp-2022.1.0.0.exe                             #redis管理工具
│  ├─get-machine-1.0-SNAPSHOT.jar                    #后端服务器生成机器码的jar包
│  ├─DtPortal.Common.CA.HosCAWebService.xml          #ca配置使用,导入his中,发布接口
│  ├─redis-desktop-manager-0.9.3.817.exe             #redis缓存管理工具
│  ├─Postman_v8.12.5.exe                             #rest接口测试工具
│  ├─SoapUI-x64-5.4.0-EB.exe                         #webservervice接口测试工具
└─ └─SQLyog-13.2.0-0.x64Community.exe                #数据库管理工具,需要安装,根据需要选择

/程序版本/2.6.10                          
├─data                                               #HOS数据文件
│  ├─HIS-工作站_2024-01-03 17_45_02.xlsx              #HOS门户系统工作站数据
│  └─upload_20241220
                    └─upload.zip                      #HOS门户系统MinIO数据,储存门户图标数据,壁纸数据和导入模版数据
├─sql                                                #初始化sql
│  ├─hos_open_portal_2.6.1.0_initial_opengauss_20241220_.sql      #HOS门户系统简版全量sql--适用于高斯数据库
│  ├─hos_open_portal_2.6.1.0_wrought_opengauss_20241220           #HOS门户系统精简版增量sql--适用于高斯数据库
│  └─h修改初始化sql.txt                                            #HOS门户系统数据库应用初始化脚本,根据项目规划ip端口更改
├─一体化版                                            
│  ├─config                                          #配置文件,根据项目情况更改
│  ├─hos-open-portal-web.tgz                         #门户前端服务,解压部署
│  ├─hos-open-portal.ini                             #门户应用启动文件
│  ├─hos-open-portal-system.jar                      #门户后端jar,部署运行
│  ├─hos-auth-server.jar                             #统一认证后端jar,部署运行
│  ├─hos-authserver.ini                              #统一认证后端应用启动文件
└─ └─hos-authserver-web.tgz                          #统一认证前端服务,解压部署

# 4. 部署规划

在开始部署操作前,应根据实际项目服务器和网络环境,规划以下内容(基于服务器环境,如果是多服务器环境需要进行拆分调整):

# 4.1 目录规划

# 4.1.1 单机部署

HOS单机部署服务器规划如下:

server-tab-0.png

# HOS应用服务目录规划
/hos/                                           #安装根目录
├──app                                          #HOS应用安装目录
│  ├─hos-open-portal                            #HOS门户系统部署目录
│  │  ├─hos-open-portal-system.jar              #后端应用
│  │  ├─hos-open-portal.ini                     #后端应用启动文件
│  │  ├─hos-open-portal-web.tgz                 #前端服务,解压部署,解压后可删除
│  │  ├─dist                                    #前端应用,解压后的文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─hos-authserver                             #统一认证部署目录
│  │  ├─hos-auth-server.jar                     #后端应用
│  │  ├─hos-authserver.ini                      #后端应用启动文件
│  │  ├─hos-authserver-web.tgz                  #前端服务,解压部署,,解压后可删除
│  │  ├─dist                                    #前端应用,解压后的文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─hos-framework-job-admin                    #任务平台部署目录
│  │  ├─hos-framework-job-admin.jar             #后端应用
│  │  ├─hos-framework-job-admin.ini             #后端应用启动文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─ssl                                        #ssl证书文件存放目录
│  │  └─hos                                     #ssl证书名称
│  │     ├─hos.crt                              #ssl证书文件,nginx使用
│  │     ├─hos.csr                              #ssl证书文件,nginx使用
│  │     ├─hos.der                              #ssl证书文件,nginx使用
│  │     ├─hos.key                              #ssl证书文件,nginx使用
│  │     ├─hos.pem                              #ssl证书文件,nginx使用
│  │     ├─hos.pfx                              #ssl证书文件,nginx使用
│  │     └─ssl.conf                             #ssl证书文件,nginx使用
│  └─jdk                                        #JAVA环境安装目录
├──logs                                         #HOS日志保存目录
│  ├─hos                                        #统一用户、统一认证、用户门户运行日志保存目录
│  ├─supervisor                                 #进城平台运行日志,存储启动日志
└─ └─xxl-job                                    #任务平台运行日志,存储任务调度日志


# HOS DB目录规划
/hos/                                           #HOS安装根目录
├──minio                                        #文件存储服务安装目录
│  └─data                                       #文件存储服务存储目录
├──redis                                        #HOS缓存服务安装目录,安装一个redis(门户/统一用户/统一认证 共用一个)
│  └─data                                       #缓存服务2数据存储目录
├──mysql                                        #数据库安装目录
└─ └─data                                       #数据库数据存储目录

# 4.1.2 集群部署

HOS集群部署服务器规划如下:

server-tab-1.png

# HOS前端服务器1/HOS前端服务器2
/hos/                                           #安装根目录
├──app                                          #HOS应用安装目录
│  ├─hos-open-portal                            #HOS门户系统部署目录
│  │  ├─hos-open-portal-web.tgz                 #前端服务,解压部署,解压后可删除
│  │  └─dist                                    #前端应用,解压后的文件
│  ├─hos-authserver                             #统一认证部署目录
│  │  ├─hos-authserver-web.tgz                  #前端服务,解压部署,,解压后可删除
│  │  └─dist                                    #前端应用,解压后的文件
│  ├─ssl                                        #ssl证书文件存放目录
│  │  └─hos                                     #ssl证书名称
│  │     ├─hos.crt                              #ssl证书文件,nginx使用
│  │     ├─hos.csr                              #ssl证书文件,nginx使用
│  │     ├─hos.der                              #ssl证书文件,nginx使用
│  │     ├─hos.key                              #ssl证书文件,nginx使用
│  │     ├─hos.pem                              #ssl证书文件,nginx使用
│  │     ├─hos.pfx                              #ssl证书文件,nginx使用
└─ └─    └─ssl.conf                             #ssl证书文件,nginx使用

# HOS后端服务器1/HOS后端服务器2
/hos/                                           #安装根目录
├──app                                          #HOS应用安装目录
│  ├─hos-open-portal                            #HOS门户系统部署目录
│  │  ├─hos-open-portal-system.jar              #后端应用
│  │  ├─hos-open-portal.ini                     #后端应用启动文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─hos-authserver                             #统一认证部署目录
│  │  ├─hos-auth-server.jar                     #后端应用
│  │  ├─hos-authserver.ini                      #后端应用启动文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─hos-framework-job-admin                    #任务平台部署目录
│  │  ├─hos-framework-job-admin.jar             #后端应用
│  │  ├─hos-framework-job-admin.ini             #后端应用启动文件
│  │  └─config                                  #后端配置文件,根据配置修改
│  ├─jdk                                        #JAVA环境安装目录
│  ├─ssl                                        #ssl证书文件存放目录
│  │  └─hos                                     #ssl证书名称,jre导入后可删除
│  │     ├─hos.crt                              #ssl证书文件,jre导入后可删除
│  │     ├─hos.csr                              #ssl证书文件,jre导入后可删除
│  │     ├─hos.der                              #ssl证书文件,jre导入后可删除
│  │     ├─hos.key                              #ssl证书文件,jre导入后可删除
│  │     ├─hos.pem                              #ssl证书文件,jre导入后可删除
│  │     ├─hos.pfx                              #ssl证书文件,jre导入后可删除
└─ └─    └─ssl.conf                             #ssl证书文件,jre导入后可删除
├──logs                                         #HOS日志保存目录
│  ├─hos                                        #统一用户、统一认证、用户门户运行日志保存目录
│  ├─supervisor                                 #进城平台运行日志,存储启动日志
└─ └─xxl-job                                    #任务平台运行日志,存储任务调度日志

# HOS数据库服务器1/数据库服务器2目录规划
/hos/                                           #HOS安装根目录
├──minio                                        #文件存储服务安装目录
│  └─data                                       #文件存储服务存储目录
├──redis                                        #HOS缓存服务安装目录,安装两个redis(门户/统一用户/统一认证 共用一个)
│  ├─data-1                                     #缓存服务1数据存储目录
│  └─data-2                                     #缓存服务2数据存储目录
├──mysql                                        #数据库安装目录
└─ └─data                                       #数据库数据存储目录

# HOS缓存服务器目录规划
/hos/                                           #HOS安装根目录
├──minio                                        #文件存储服务安装目录
│  └─data                                       #文件存储服务存储目录
├──redis                                        #HOS缓存服务安装目录,安装两个redis(门户/统一用户/统一认证 共用一个)
│  ├─data-1                                     #缓存服务1数据存储目录
└─ └─data-2                                     #缓存服务2数据存储目录

# HOS文件服务器目录规划
/hos/                                           #HOS安装根目录
├──minio                                        #文件存储服务安装目录
└─ └─data                                       #文件存储服务存储目录

# 4.2 端口规划

根据项目是单机部署还是集群部署,规划HOS应用的端口,并产出系统访问信息文档。

# 4.2.1 单机部署

应用名称 端口 应用名称 端口
HOS门户系统前端 8000 HOS门户系统后端 8004
统一认证前端 8002 统一认证后端 8006
任务平台后端 8003 数据库 3306
minIO API端口 9000 minIO web端口 9001
redis 6379

系统访问信息截图如下:

  • 改!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

port-plan-1.png

# 4.2.1 集群部署

应用名称 端口 应用名称 端口
HOS门户系统前端1 8000 HOS门户系统后端1 8000
HOS门户系统前端2 8000 HOS门户系统后端2 8000
统一认证前端1 8002 统一认证后端1 8002
统一认证前端2 8002 统一认证后端2 8002
任务平台后端1 8003 任务平台后端2 8003
mysql数据库1 3306 mysql数据库2 3306
数据库服务器1 redis1 6379 数据库服务器1 redis2 6380
数据库服务器2 redis3 6379 数据库服务器2 redis4 6380
缓存服务器 redis5 6379 缓存服务器 redis6 6380
minIO API端口1 9000 minIO API端口2 9000
minIO API端口3 9000 minIO API端口4 9000
minIO web端口 9001

系统访问信息截图如下:

  • 改!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

port-plan-2.png

# 4.3 资源规划

主要针对服务器的内存、硬盘等资源的合理规划,避免出现OOM、磁盘打满的情况,避免影响应用系统。

# 4.3.1 JVM内存配置

基于服务器32GB内存的设置如下(具体根据实际服务器内存大小调整,建议设置的服务器上所有应用的内存之和不超过服务器总内存的60%):

-Xms4096m -Xmx4096m -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=2048m

# 4.3.2 系统日志配置

系统日志保存在数据库中,HOS门户系统、统一用户等系统的登录日志、系统日志、openApi日志、接口日志的默认保存时间为180天,根据实际需求,可以在系统参数配置中修改:

img.png

# 4.3.3 日志文件配置

HOS各系统运行时产生的运行日志文件保存在服务器上,主要包括后台日志和控制台日志:

对于后台日志,默认保存30天,文件最大100MB,可以根据实际需求,修改logback配置文件logback-spring.xml

<!--文件日志, 按照每天生成日志文件 -->
<appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--日志文件输出的文件名-->
        <FileNamePattern>${LOG_HOME}/${APPLICATION_NAME}-${SERVER_PORT}.info.%d{yyyy-MM-dd}.log</FileNamePattern>
        <!--日志文件保留天数-->
        <MaxHistory>30</MaxHistory>
        <!--日志文件最大的大小-->
        <totalSizeCap>100MB</totalSizeCap>
    </rollingPolicy>
...
</appender>

<!--文件日志, 按照每天生成日志文件 -->
<appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!--日志文件输出的文件名-->
        <FileNamePattern>${LOG_HOME}/${APPLICATION_NAME}-${SERVER_PORT}.error.%d{yyyy-MM-dd}.log</FileNamePattern>
        <!--日志文件保留天数-->
        <MaxHistory>30</MaxHistory>
        <!--日志文件最大的大小-->
        <totalSizeCap>100MB</totalSizeCap>
    </rollingPolicy>
...
</appender>

对于控制台日志,默认只保存1个文件且不超过10MB,也可以根据实际需求修改supervisor配置文件/etc/supervisord.d/*.ini

stdout_logfile_maxbytes=10MB
stdout_logfile_backups=1

# 5.配置文件

根据部署规划及依赖系统准备结果,修改HOS应用系统的后端配置文件、后端服务启动文件、前端nginx配置文件,为应用运行做准备。

# 5.1 门户系统后端配置

# 5.1.1 用配置文件

目录:hos-portal/config,修改application-prod.yml,根据实际规划和注释说明修改相关配置:

####################################################
## 根据实际环境和部署规划修改以下信息             ##
####################################################
hos-server-port: 8000

#门户引擎版本号,要与项目申请的许可版本一致
portal-version: R1.0.2

#数据库msyql配置信息
mysql-host: 10.1.5.71               #mysql数据库ip,可根据实际情况更改,如果是集群,配置负载ip
mysql-port: 3306                    #mysql数据库端口,默认3306,可根据实际情况更改
mysql-username: root                #mysql数据库名称,默认root,可根据实际情况更改
mysql-password: mgzJV20kj           #mysql数据库名称,可根据实际情况更改
mysql-dataname: hos_portal          #mysql数据库名称,默认hos_portal,可根据实际情况更改

#redis集群ip和端口,集群环境使用
redis-nodes: 10.60.0.115:6379,10.60.0.115:6380,10.60.0.116:6379,10.60.0.116:6380,10.60.0.117:6379,10.60.0.117:6380
#redis的ip地址,单机环境使用
redis-host: 10.1.5.71
#redis的端口,单机环境使用
redis-port: 81
#redis密码,单机或集群都需要配置
redis-password: mgzJV20kj

#xxl-job任务平台地址
job-admin-address: http://10.1.5.69:8003

#统一认证前端访问地址
hos-authserver-address: http://10.1.5.69:8002
#HOS门户系统前端访问地址
hos-portal-web-address: http://10.1.5.69:8000
#统一用户前端访问地址
hos-open-platform-address: http://10.1.5.69:8001

#门户在统一用户平台中创建应用的id,现在已与初始化数据对应,可根据实际情况更改
app-client-id: 8o96I02y7N4N          
#门户在统一用户平台中创建应用的秘钥,现在已与初始化数据对应,可根据实际情况更改         
app-client-secret: 532v69P013m3h55R           

#日志保存路径
log-path: /hos/logs/hos/

#打印路径
posyspath: /hos/
####################################################

修改redis配置:同样在该配置文件内部找到以下内容进行修改:

redis可以单机或集群方式部署,所以根据下面的注释来配置单机或集群的信息(只需要注释或取消注释来加载单机或集群信息即可,具体ip等信息在上面步骤中):

  redis:
    password: ${redis-password}
    database: 0
    timeout: 5000
    #如果使用redis集群,则以下两行取消注释,否则添加注释
    #cluster:
      #nodes: ${redis-nodes}
    #如果使用redis单机(默认),则以下两行取消注释,否则添加注释
    host: ${redis-host}       #redis访问地址
    port: ${redis-port}       #redis访问端口

多网络场景配置(可选)

如果用户环境存在多套网络,且网络之间无法访问的情况,比如用户浏览器访问的统一认证的地址,后端服务器无法访问该地址时,需要对配置文件进行特殊配置。

1.在配置文件最上面配置统一认证地址的位置增加hos-authserver-address-api参数,该地址是统一认证内网地址,用于后端服务直接访问统一认证(不经过浏览器):

img.png

2.修改配置文件中oauth2配置内容中的相关地址,包括issuer-uri和authorization-uri修改为下图中的内容:

issuer-uri: ${hos-authserver-address-api}/api
authorization-uri: ${hos-authserver-address}/oauth/authorize

img_1.png

# 5.1.2 应用启动文件:hos-portal/hos-portal.ini

[program:hos-portal]
command = /hos/app/jdk/bin/java -jar -Xms4096m -Xmx4096m hos-portal-system.jar -Dspring.config.location=../config
directory = /hos/app/hos-portal
process_name = %(program_name)s
user = hos
numprocs = 1
autorestart = true
startsecs = 1
redirect_stderr = true
stdout_logfile = /hos/logs/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=5MB
stdout_logfile_backups=1

根据实际情况主要修改以下内容:

  • command:后端服务启动命令,java命令路径(绝对路径)、kvm参数
  • directory:jar包所在目录
  • stdout_logfile:控制台日志保存路径

# 5.3 统一认证后端配置

# 5.3.1 应用配置文件

目录:hos-authserver/config,修改application-prod.yml,根据实际规划和注释说明修改相关配置:

####################################################
## 根据实际环境和部署规划修改以下信息             ##
####################################################
#服务端口
hos-server-port: 8002

#数据库msyql配置信息
mysql-host: 10.1.5.71               #mysql数据库ip,可根据实际情况更改,如果是集群,配置负载ip
mysql-port: 3306                    #mysql数据库端口,默认3306,可根据实际情况更改
mysql-username: root                #mysql数据库名称,默认root,可根据实际情况更改
mysql-password: mgzJV20kj           #mysql数据库名称,可根据实际情况更改
mysql-dataname: hos_open            #mysql数据库名称,默认hos_open,可根据实际情况更改

#redis集群ip和端口,集群环境使用
redis-nodes: 10.60.0.115:6381,10.60.0.115:6382,10.60.0.116:6381,10.60.0.116:6382,10.60.0.117:6381,10.60.0.117:6382

#redis的ip地址,单机环境使用
redis-host: 10.1.5.71
#redis的端口,单机环境使用
redis-port: 82
#redis密码,单机或集群都需要配置
redis-password: mgzJV20kj

#统一用户(开放平台)前端地址
hos-pull-password-ip: http://10.1.5.69:8001

#统一认证前端地址
hos-authserver-address: http://10.1.5.69:8002

#日志保存路径
log-path: /hos/logs/hos/
####################################################

修改redis配置:同样在该配置文件内部找到以下内容进行修改:

redis可以单机或集群方式部署,所以根据下面的注释来配置单机或集群的信息(只需要注释或取消注释来加载单机或集群信息即可,具体ip等信息在上面步骤中):

  redis:
    password: ${redis-password}
    database: 0
    timeout: 5000
    #如果使用redis集群,则以下两行取消注释,否则添加注释
    #cluster:
      #nodes: ${redis-nodes}
    #如果使用redis单机(默认),则以下两行取消注释,否则添加注释
    host: ${redis-host}       #redis访问地址
    port: ${redis-port}       #redis访问端口

# 5.3.2 应用启动文件:hos-authserver/hos-authserver.ini

[program:hos-authserver]
command = /hos/app/jdk/bin/java -jar -Xms2048m -Xmx2048m hos-auth-server.jar -Dspring.config.location=../config
directory = /hos/app/hos-authserver
process_name = %(program_name)s
numprocs = 1
autorestart = true
startsecs = 1
redirect_stderr = true
stdout_logfile = /hos/logs/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=5MB
stdout_logfile_backups=1

根据实际情况主要修改以下内容:

  • command:后端服务启动命令,java命令路径(绝对路径)、kvm参数
  • directory:jar包所在目录
  • stdout_logfile:控制台日志保存路径

# 5.4 任务平台配置

# 5.4.1 应用配置文件

目录:hos-framework-job-admin/config,修改application-prod.yml,根据实际规划和注释说明修改相关配置:

####################################################
## 根据实际环境和部署规划修改以下信息             ##
####################################################
#服务端口
hos-server-port: 8003

#数据库msyql配置信息
mysql-host: ip
mysql-port: port
mysql-username: root
mysql-password: password
####################################################

# 5.4.2 应用启动文件:hos-authserver/hos-authserver.ini

[program:hos-framework-job-admin]
command = /hos/app/jdk/bin/java -jar -Xms1024m -Xmx1024m hos-framework-job-admin.jar -Dspring.config.location=../config
directory = /hos/app/hos-framework-job-admin
process_name = %(program_name)s
numprocs = 1
autorestart = true
startsecs = 1
redirect_stderr = true
stdout_logfile = /hos/logs/supervisor/%(program_name)s.log
stdout_logfile_maxbytes=5MB
stdout_logfile_backups=1

根据实际情况主要修改以下内容:

  • command:后端服务启动命令,java命令路径(绝对路径)、kvm参数
  • directory:jar包所在目录
  • stdout_logfile:控制台日志保存路径

# 5.5 nginx配置文件

文件路径:hos-app/nginx/hos-app.conf,主要包含HOS统一用户、统一认证、门户系统、任务平台、文件存储minio的前端配置、负载均衡配置。

gzip                on;
gzip_static         on;
gzip_min_length     1k;
gzip_buffers        4 16k;
gzip_http_version   1.1;
gzip_comp_level     2;
gzip_types          text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied        expired no-cache no-store private auth;
gzip_disable        "MSIE [1-6]\.";

client_max_body_size 100m;

# HOS门户系统后端
upstream hos-portal {
    server ip:port;
    server ip:port;
}

# 统一用户后端
upstream hos-user {
    server ip:port;
    server ip:port;
}

# 统一认证后端
upstream hos-authserver {
    server ip:port;
    server ip:port;
}

# 任务平台后端
upstream hos-xxl-job {
    server ip:port;
    server ip:port;
}

# 文件存储minio api服务
upstream hos-minio {
    server ip1:port;
    server ip2:port;
    server ip3:port;
    server ip4:port;
}

# HOS门户系统前端
server {
    listen       8000 ssl;
    server_name  localhost;

    ssl_certificate        /hos/app/ssl/hos/hos.crt;
    ssl_certificate_key    /hos/app/ssl/hos/hos.key;

    location / {
        alias  /hos/app/hos-portal/dist/;
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

    location /api/ {
        proxy_pass http://hos-portal/api/;
    }
}

# 统一用户前端
server {
    listen       8001 ssl;
    server_name  localhost;

    ssl_certificate        /hos/app/ssl/hos/hos.crt;
    ssl_certificate_key    /hos/app/ssl/hos/hos.key;

    location / {
        alias  /hos/app/hos-open-platform/dist/;
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

    location /api/ {
        proxy_pass http://hos-user/api/;
    }
}

# 统一认证前端
server {
    listen       8002 ssl;
    server_name  localhost;

    ssl_certificate        /hos/app/ssl/hos/hos.crt;
    ssl_certificate_key    /hos/app/ssl/hos/hos.key;

    location / {
        alias  /hos/app/hos-authserver/dist/;
        try_files $uri $uri/ /index.html;
        index  index.html index.htm;
    }

    location /api/ {
        proxy_pass http://hos-authserver/api/;
    }
}

# 任务平台
server {
    listen       8003 ssl;
    server_name  localhost;

    ssl_certificate        /hos/app/ssl/hos/hos.crt;
    ssl_certificate_key    /hos/app/ssl/hos/hos.key;

    location / {
        proxy_pass http://hos-xxl-job/;
    }
}

# 文件存储minio服务
server {
    listen 9000 ssl;
    server_name localhost;

    ssl_certificate        /hos/app/ssl/hos/hos.crt;
    ssl_certificate_key    /hos/app/ssl/hos/hos.key;

    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;
    proxy_request_buffering off;

    location / {
        proxy_pass http://hos-minio;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 300;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        chunked_transfer_encoding off;
    }
}

其中,需要根据实际情况修改以下内容:

  • upstream模块中的server信息:应用后端服务的ip和端口,如果是多节点部署,则增加多个server信息即可。
  • server模块中的location alias信息:应用前端目录路径,根据实际修改即可。
  • listen:前端端口信息,根据部署规划修改,如果使用https,则在端口后面加空格ssl,并将ssl相关配置取消注释。
  • ssl_certificate、ssl_certificate_key:ssl证书的路径