# 二、准备工作
# 1. 系统准备
HOS相关产品的运行和使用,依赖于公司以下系统维护基础数据,需要提前部署并成功运行:
- iMedical iBUS(李岩):通过服务总线发布、订阅系统之间的数据交互,HOS门户需要给服务总线给下游第三方系统推送帐号数据,如项目不需要给第三方推送帐号数据,可不做要求。
# 2. 确定部署版本
根据项目情况确定项目部署的程序分支、版本和数据库。
程序分支:新项目无特殊情况,部署release-2.6.1.0分支
程序版本:
- 精简版:支持老项目升级,支持对接HIS9.0之前的版本,支持导入组织人员;不支持组织人员同步
- 专业版:支持从生产要素系统、DTS系统获取组织人员数据和业务数据,支持资源排班登录,支持数据治理,要求项目必须部署V3版本的生产要素系统、DTS系统和资源排班系统
数据库选择:
- mysql:非国产化数据库,根据需求选择
- openGauss:国产数据库,部署要求麒麟V10或者openEuler-20.03系统
# 3. 服务器准备
HOS平台部署有两个方案,单机版和集群版,项目可以根据自己的需要选择。
单机版:
适用于服务器较为紧张同时客户端较少、使用不频繁的项目,如单机项目后期想升级集群部署,可以升级,但是改动较大。
- 优点:只需要两台服务器,需要的服务器资源较少,部署简单
- 缺点:性能较差,没有集群部署,容灾能力较差
集群版:
适用于服务器资源充足,客户端较多,使用频繁的项目;如果把HOS门户作为唯一入口,建议使用集群版,以保证系统稳定。
- 优点:性能好,所有应用和服务都是双机部署,稳定性和容灾更好。
- 缺点:服务器使用较多,总共需要八台服务器
服务器具体要求如下:
选择使用openGauss数据库
选择使用mysql数据库
# 4. 安装文件下载
下载地址:请联系HOS应用研发组同事或者郑州技术支持同事获取。
HOS安装文件下载目录介绍:
├─程序版本 #HOS程序应用,必须下载,选择子目录最新版本下载
├─hos-base-linux #HOS环境文件,linux环境下使用,系统为linxu必须下载
└─hos-app #HOS基础应用,必须下载
提示
- 程序版本根据需要下载,如无特殊要求,下载2.6.10。
# 5. 安装文件介绍
/hos-base-linux
├─openGauss #高斯数据库,部署在数据服务器--根据项目需要选择下载
├─openEuler #华为免费linux操作系统--部署高斯数据库时,根据项目需要选择下载
├─jdk #java应用,HOS后端应用运行必须环境,部署到后端服务器
├─redis #缓存服务,HOS后端应用缓存存储使用,部署到数据/缓存服务器
├─nginx #集群负载,前端跳转,部署在前端服务器
├─mysql #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接口测试工具
│ ├─dbeaver.zip #数据库管理工具,需要安装,可管理mysql和openGauss数据库,根据需要安装
└─ └─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 #统一认证前端服务,解压部署
# 6. 部署规划
在开始部署操作前,应根据实际项目服务器和网络环境,规划以下内容(基于服务器环境,如果是多服务器环境需要进行拆分调整):
# 6.1 目录规划
# 6.1.1 单机部署
HOS单机部署服务器规划如下:
选择部署openGauss
选择部署mysql
# 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 #任务平台运行日志,存储任务调度日志
选择部署openGauss
# HOS DB目录规划--选择部署openGauss
/hos/ #HOS安装根目录
├──minio #文件存储服务安装目录
│ └─data #文件存储服务存储目录
├──redis #HOS缓存服务安装目录,安装一个redis(门户/统一用户/统一认证 共用一个)
│ └─data #缓存服务2数据存储目录
├──opengauss #数据库安装目录
└─ └─data #数据库数据存储目录
选择部署mysql
# HOS DB目录规划--选择部署mysql
/hos/ #HOS安装根目录
├──minio #文件存储服务安装目录
│ └─data #文件存储服务存储目录
├──redis #HOS缓存服务安装目录,安装一个redis(门户/统一用户/统一认证 共用一个)
│ └─data #缓存服务2数据存储目录
├──mysql #数据库安装目录
└─ └─data #数据库数据存储目录
# 6.1.2 集群部署
HOS集群部署服务器规划如下:
选择部署openGauss
选择部署mysql
# 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 #任务平台运行日志,存储任务调度日志
选择部署openGauss
# HOS数据库服务器1/数据库服务器2目录规划--选择部署openGauss
/hos/ #HOS安装根目录
├──minio #文件存储服务安装目录
│ └─data #文件存储服务存储目录
├──redis #HOS缓存服务安装目录,安装两个redis(门户/统一用户/统一认证 共用一个)
│ ├─data-1 #缓存服务1数据存储目录
│ └─data-2 #缓存服务2数据存储目录
├──openGauss #数据库安装目录
└─ └─data #数据库数据存储目录
选择部署mysql
# HOS数据库服务器1/数据库服务器2目录规划--选择部署mysql
/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 #文件存储服务存储目录
# 6.2 端口规划
根据项目是单机部署还是集群部署,规划HOS应用的端口,并产出系统访问信息文档。
# 6.2.1 单机部署
应用名称 | 端口 | 应用名称 | 端口 |
---|---|---|---|
HOS门户系统前端 | 8000 | HOS门户系统后端 | 8004 |
统一认证前端 | 8002 | 统一认证后端 | 8006 |
任务平台后端 | 8003 | 数据库 | 15000 |
minIO API端口 | 9000 | minIO web端口 | 9001 |
redis | 6379 |
系统访问信息截图如下:
# 6.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 |
数据库1 | 15000 | 数据库2 | 15000 |
数据库服务器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 |
系统访问信息截图如下:
# 6.3 资源规划
主要针对服务器的内存、硬盘等资源的合理规划,避免出现OOM、磁盘打满的情况,避免影响应用系统。
# 6.3.1 JVM内存配置
基于服务器32GB内存的设置如下(具体根据实际服务器内存大小调整,建议设置的服务器上所有应用的内存之和不超过服务器总内存的60%):
-Xms4096m -Xmx4096m -XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=2048m
# 6.3.2 系统日志配置
系统日志保存在数据库中,HOS门户系统、统一用户等系统的登录日志、系统日志、openApi日志、接口日志的默认保存时间为180天,根据实际需求,可以在系统参数配置中修改:
# 6.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
# 7.配置文件
根据部署规划及依赖系统准备结果,修改HOS应用系统的后端配置文件、后端服务启动文件、前端nginx配置文件,为应用运行做准备。
# 7.1 门户系统后端配置
# 7.1.1 用配置文件
目录:hos-open-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参数,该地址是统一认证内网地址,用于后端服务直接访问统一认证(不经过浏览器):
2.修改配置文件中oauth2配置内容中的相关地址,包括issuer-uri和authorization-uri修改为下图中的内容:
issuer-uri: ${hos-authserver-address-api}/api
authorization-uri: ${hos-authserver-address}/oauth/authorize
# 7.1.2 应用启动文件:hos-open-portal/hos-open-portal.ini
[program:hos-open-portal]
command = /hos/app/jdk/bin/java -jar -Xms4096m -Xmx4096m hos-open-portal.jar -Dspring.config.location=../config
directory = /hos/app/hos-open-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:控制台日志保存路径
# 7.3 统一认证后端配置
# 7.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:控制台日志保存路径
# 7.4 任务平台配置
# 7.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
####################################################
# 7.4.2 应用启动文件:hos-framework-job-admin/hos-framework-job-admin.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:控制台日志保存路径
# 7.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-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-open-portal/dist/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://hos-open-portal/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证书的路径