DHIS2 配置参考(dhis.conf)¶
本节将介绍通过配置文件 dhis.conf "配置文件进行配置,然后介绍存储在数据库中的配置参数(系统设置)。 数据库中的配置参数(系统设置)。
下面将介绍 dhis.conf 配置文件的全部配置选项。 配置文件的全部配置选项。配置文件应放置在 环境变量 "DHIS2_HOME "指向的目录中。 在 linux 环境变量指向的目录中。 默认为 /opt/dhis2/。
注
您不应尝试直接使用此配置文件,而应将其 作为可用配置选项的参考。许多 属性是可选的。
属性
----------------------------------------------------------------------¶
PostgreSQL 的数据库连接 [必填] ```properties¶
----------------------------------------------------------------------¶
Hibernate SQL 方言¶
connection.dialect = org.hibernate.dialect.PostgreSQLDialect
JDBC 驱动类¶
connection.driver_class = org.postgresql.Driver
数据库连接 URL¶
connection.url = jdbc:postgresql:dhis2
数据库用户名¶
connection.username = dhis
数据库密码(敏感)¶
connection.password = xxxx
----------------------------------------------------------------------¶
PostgreSQL 的数据库连接 [可选]¶
----------------------------------------------------------------------¶
连接池的最大大小(默认:80)¶
connection.pool.max_size = 80
自 v43 起已弃用。连接池在任何给定时间内维持的最小连接数(默认值:5)。¶
connection.pool.min_size = 5
自 v43 起已弃用。启动时池尝试获取的连接数。应介于 minPoolSize 和 maxPoolSize 之间¶
connection.pool.initial_size = 5
自 v43 起已弃用。决定池用完时每次尝试获取多少个连接。¶
connection.pool.acquire_incr = 5
连接在被丢弃前可保持在池中但未使用的秒数。零表示闲置连接永不过期。(默认值:7200)¶
connection.pool.max_idle_time = 7200
自 v43 起已弃用。超过 minPoolSize 的连接在被清除前在池中闲置的秒数(默认值:0)¶
connection.pool.max_idle_time_excess_con = 0
自 v43 起已弃用。如果此值大于 0,dhis2 将每隔此秒数测试池中所有闲置但未选中的连接。(默认值:0)¶
connection.pool.idle.con.test.period = 0
自 v43 起已弃用。如果开启,将在每次连接检出时执行操作以验证连接是否有效。(默认值:false)¶
connection.pool.test.on.checkout = false
自 v43 起已被弃用。如果开启,将在每次连接检入时异步执行操作,以验证连接是否有效。(默认值:开)¶
connection.pool.test.on.checkin = on
定义所有连接测试将执行的查询。理想情况下不需要此配置,因为 postgresql 驱动程序已经提供了高效的测试查询。该配置仅用于评估,除非有必要,否则请勿使用。¶
connection.pool.preferred.test.query = select 1
自 v43 版起已被弃用。配置 dhis2 用于 jdbc 操作的辅助线程数量。(默认值:3)¶
connection.pool.num.helper.threads = 3
光 DB 池功能。连接池超时:设置客户端从池中等待连接的最大毫秒数(默认值:30 毫秒)。¶
connection.pool.timeout = 30
设置 Hikari 池等待连接验证为存活的最大毫秒数。(默认值:5 毫秒)。¶
connection.pool.validation_timeout = 5
数据库数据源池类型。支持的池类型有:hikari(默认)、c3p0(已废弃)、unpooled¶
db.pool.type = hikari
----------------------------------------------------------------------¶
服务器 [必填]¶
----------------------------------------------------------------------¶
DHIS2 实例的基本 URL¶
服务器.base.url 设置指的是终端用户通过网络访问系统的外部可达 URL。¶
必须是绝对的 http:// 或 https:// URL,带有有效的主机名,且无尾斜线。¶
密码恢复所必需。也用于 OIDC 和 OAuth2 重定向 URL、通知邮件和解释链接。¶
如果缺失、无效或带有斜线,DHIS2 会在启动时发出警告。请参阅下面的 "服务器基本 URL"。¶
server.base.url = https://play.dhis2.org/dev
如果系统部署在 HTTPS 上,则启用安全设置,可以是 "关闭"、"打开"(默认:"关闭)¶
server.https = off
强烈建议启用 server.https 设置,并使用加密的 HTTPS 协议部署 DHIS 2。此设置将启用安全 cookies 等功能。启用此设置后,需要部署 HTTPS¶
----------------------------------------------------------------------¶
系统 [可选]¶
----------------------------------------------------------------------¶
仅用于数据库读取操作的系统模式,可以是 "关闭 "或 "开启"(默认:"关闭")。¶
system.read_only_mode = 关闭
会话超时,以秒为单位。(默认值:3600)¶
system.session.timeout = 3600
SQL 视图保护表,可选 "开 "或 "关"(默认值:"开")。¶
system.sql_view_table_protection = on
启用 SQL 视图写入,可以是 "开 "或 "关"(默认值:"关")。¶
system.sql_view_write_enabled = off
允许服务器调用的远程服务器,主机名应以"/"结尾,默认为空¶
metadata.sync.remote_servers_allowed = https://server1.org/,https://server2.org/
设置要建立的缓存实例的最大大小。如果设置为 0,则不进行缓存。不能为负值。(默认值:0.5)。¶
system.cache.max_size.factor = 0.5
----------------------------------------------------------------------¶
加密 [可选]¶
----------------------------------------------------------------------¶
加密密码(敏感)¶
encryption.password = xxxx
----------------------------------------------------------------------¶
文件存储 [可选]¶
----------------------------------------------------------------------¶
文件存储提供程序,目前支持 "filesystem "和 "aws-s3¶
filestore.provider = filesystem
文件系统上 DHIS2_HOME 下面的文件夹/存储桶名称,AWS S3 上的 "bucket¶
filestore.container = files
可访问 S3 兼容 API 的 URL(仅适用于提供商 "s3)¶
filestore.endpoint = http://minio:9000
数据中心位置(非必填)¶
filestore.location = eu-west-1
公共身份/用户名¶
filestore.identity = dhis2-id
密钥/密码(敏感)¶
filestore.secret = xxxx
----------------------------------------------------------------------¶
LDAP [可选]¶
----------------------------------------------------------------------¶
LDAP 服务器 URL¶
ldap.url = ldaps://300.20.300.20:636
LDAP 管理器用户区分名称¶
ldap.manager.dn = cn=JohnDoe,ou=Country,ou=Admin,dc=hisp,dc=org
LDAP 管理员用户密码(敏感)¶
ldap.manager.password = xxxx
LDAP 条目区分名称搜索基数¶
ldap.search.base = dc=hisp,dc=org
LDAP 条目区分名称过滤器¶
ldap.search.filter = (cn={0})
----------------------------------------------------------------------¶
节点 [可选]¶
----------------------------------------------------------------------¶
节点标识符,可选,在集群中有用¶
node.id = 'node-1'
主要领导者。为真时,节点将在领导者选举中无条件设置自己的节点 ID,只要它还活着,就会在选举中获胜。可以为 true 或 false(默认值:false)¶
node.primary_leader = false
----------------------------------------------------------------------¶
监控 [可选]¶
----------------------------------------------------------------------¶
DHIS2 API 监控¶
monitoring.api.enabled = on
JVM 监控¶
monitoring.jvm.enabled = on
数据库连接池监控¶
monitoring.dbpool.enabled = 开
休眠监控,生产中不使用¶
monitoring.hibernate.enabled = off
正常运行时间监控¶
monitoring.uptime.enabled = on
CPU 监控¶
monitoring.cpu.enabled = on
将请求上下文添加为 SQL 注释,以便查询归因。启用后、¶
每条 SQL 语句前都会加上注释,其中包含的上下文有¶
触发查询的控制器和方法。可以是 "开"、"关¶
默认为 "关闭")。¶
monitoring.sql.context = off
控制 SQL 注释中包含哪些键。支持的键:¶
控制器、方法、请求 ID、会话 ID。SQL 注释会更改查询¶
文本,这会妨碍 PostgreSQL 准备语句缓存。默认¶
键(controller、method)在每个端点都是稳定的,因此同一端点¶
重复使用其缓存语句。添加 requestId 或 sessionId 会产生¶
每个请求或会话都会产生唯一的 SQL 文本,这样就无法完全缓存¶
而且会大大降低性能。只有在¶
调试。(默认:控制器、方法)¶
monitoring.sql.context.keys = controller,method
----------------------------------------------------------------------¶
Redis [可选]¶
----------------------------------------------------------------------¶
启用 Redis¶
redis.enabled = true
Redis 主机名¶
redis.host = localhost
Redis 端口¶
redis.port = 6379
Redis 密码¶
redis.password = xxxx
连接 Redis 时使用 SSL,可选 "开启 "或 "关闭"(默认值)¶
redis.use.ssl = off
----------------------------------------------------------------------¶
分析 [可选]¶
----------------------------------------------------------------------¶
分析数据库 JDBC 驱动程序类¶
analytics.connection.driver_class = org.postgresql.Driver
分析数据库连接 URL¶
analytics.connection.url = jdbc:postgresql:analytics
分析数据库用户名¶
analytics.connection.username = analytics
分析数据库密码(敏感)¶
analytics.connection.password = xxxx
未记录的分析表。可选 "开启"(默认)或 "关闭"。开启将提高分析地理生成性能,但代价是无法复制。¶
analytics.table.unlogged = on
Analytics 连接池的最大容量(默认值:80)。¶
analytics.connection.pool.max_size = 80
Analytics 连接池在任何时候都能维持的最小连接数(默认值:5)。¶
analytics.connection.pool.min_size = 5
启动时池将尝试获取的连接数。应介于 minPoolSize 和 maxPoolSize 之间(默认值:5)。¶
analytics.connection.pool.initial_size = 5
如果存在,覆盖 analytics.connection.url 值--在容器中运行 Apache Doris 时很有用(这样它就不能通过 localhost 访问 Postgres)。¶
doris.catalog.connection.url = https://doris.example.org
----------------------------------------------------------------------¶
系统遥测 [可选]¶
----------------------------------------------------------------------¶
系统监控 URL¶
system.monitoring.url =
系统监控用户名¶
system.monitoring.username =
系统监控密码(敏感)¶
system.monitoring.password = xxxx
----------------------------------------------------------------------¶
系统更新通知 [可选]¶
----------------------------------------------------------------------¶
系统更新通知,如新的 DHIS2 版本可用。当有新的 DHIS2 补丁版本可供下载时,系统将默认在 "系统 "类别下的邮件收件箱中发送通知。¶
除非在 "常规设置 "下定义了 "系统更新通知收件人 "用户组,否则该通知将发送给拥有 "所有 "权限的用户。可以是 "关闭"、"打开"(默认为 "打开)¶
system.update_notifications_enabled = on
----------------------------------------------------------------------¶
日志记录 [可选]¶
----------------------------------------------------------------------¶
日志文件的最大大小,默认为 100MB¶
logging.file.max_size = 200MB
滚动日志存档文件的最大数量,默认为 0¶
logging.file.max_archives = 1
启用查询日志。可以是 "开 "或 "关"(默认为 "关")。¶
logging.query = off
以毫秒为单位将慢于此阈值的查询记录到 WARN 级别¶
默认值:1000)。¶
logging.query.slow_threshold = 1000
在日志上下文(MDC)中添加散列会话 ID。在日志¶
日志 4j2 模式布局中通过%X{sessionId} 输出。可以是 "开"、"关¶
默认值:"on")。¶
logging.session_id = on
----------------------------------------------------------------------¶
日志级别 [可选]¶
----------------------------------------------------------------------¶
DHIS 2 日志级别(级别可以是 TRACE、DEBUG、INFO、WARN、ERROR)¶
logging.level.org.hisp.dhis = INFO
Spring 日志级别(指 Java 类包名称)¶
logging.level.org.springframework = INFO
----------------------------------------------------------------------¶
App Hub [可选]¶
----------------------------------------------------------------------¶
DHIS2 应用程序集线器服务的基本 URL(默认值:https://apps.dhis2.org)¶
apphub.base.url = https://apps.dhis2.org
DHIS2 App Hub 服务的基础 API URL,用于应用程序更新(默认值:https://apps.dhis2.org)¶
apphub.api.url = https://apps.dhis2.org/api
----------------------------------------------------------------------¶
会话 [可选]¶
----------------------------------------------------------------------¶
每个用户在不同客户端上可能并发的会话数量¶
max.sessions.per_user = 10
----------------------------------------------------------------------¶
路由 API [可选]¶
----------------------------------------------------------------------¶
允许从路由端点调用的远程服务器。默认为任何 HTTPS URL。允许使用通配符。¶
例如 route.remote_servers_allowed = https://server1.com/,https://server2.com/,https://192.168..¶
route.remote_servers_allowed = https://*
请注意,配置文件支持环境变量。这意味着你可以将某些属性设置为环境变量,然后解析它。
例如,`DB/_PASSWD `是环境变量的名称:
```属性
connection.password = $ {DB_PASSWD}
请注意,此文件包含您的DHIS2数据库的密码(以明文形式) 文本,因此需要对其进行保护,以防止未经授权的访问。去做这个, 调用以下命令,以确保仅允许* dhis *用户读取它:
chmod 600 dhis.conf
服务器基本 URL{ #install_server_base_url }¶
dhis.conf "中的 "server.base.url "属性定义了 DHIS2 实例可从外部到达的基本 URL,即用户在浏览器中输入以访问系统的 URL。正确设置该值是**重要的**:DHIS2 的一些功能会从该值生成链接,如果该值缺失或畸形,就会破坏这些链接。
server.base.url = https://dhis2.example.org/dhis
为什么重要{ #why-it-matters }¶
DHIS2 使用 server.base.url 在后端生成的内容中建立绝对 URL。依赖它的功能包括
- 密码恢复 - 帐户恢复电子邮件包含一个从
server.base.url建立的重置链接。如果该属性缺失或无效,则密码恢复不可用。 - OIDC 和 OAuth2 - 重定向 URI 和客户端注册 URL 均由此值派生。
- ** 通知邮件** - 解释、信息和订阅邮件中的链接均指向此基地。
- 解释共享 - 仪表板、可视化和地图的共享链接。
- API 元数据 URL - 某些系统信息和元数据端点会根据此值发出绝对 URL。
有效值{ #valid-values }¶
该值必须是最终用户可以访问的绝对 URL:
- 方案:"https://"(强烈建议)或 "http://"(用于非 TLS 环境)。
- 主机名:用户浏览器可访问的有效主机名或 IP 地址,在生产部署中不能使用 "localhost"。
- 无尾斜线。
- 如果 DHIS2 未部署在服务器根目录,请包含上下文路径(如
/dhis)。
For example, you can filter the "MCH Infant Weight (g)" data element, of the program "Child Program" and program stage "Baby Postnatal" looking for values greater than 2000 and lower than 4000. The filter is defined like this:
属性
良好¶
server.base.url = https://dhis2.example.org server.base.url = https://dhis2.example.org/dhis
坏 - 尾部斜线¶
server.base.url = https://dhis2.example.org/
错误 - 无方案¶
server.base.url = dhis2.example.org
错误 - 终端用户无法访问¶
server.base.url = http://localhost:8080
### 启动验证{ #startup-validation }
启动时,DHIS2 会验证 `server.base.url`,如果值缺失、为空、不是有效的绝对 URL 或有尾部斜线,则会记录一条 `WARN` 消息。DHIS2 将继续在这种状态下启动(在上述功能的降级模式下),但管理员应将警告视为需要修复的问题。
## 加密配置 { #install_encryption_configuration }
DHIS2 支持数据加密功能,但需额外配置。要确保加密算法的安全性,需在` dhis.conf` 配置文件中通过 *encryption.password *属性设置密码(密钥)
```属性
加密密码= xxxx
*encryption.password*属性是加密和解密数据库数据时使用的密码(密钥)。
如果未在 dhis.conf 中定义加密密码,则将使用默认密码。 密码。请注意,由于 DHIS 2. 由于 DHIS 2 的开源性质,使用默认密码不会提供任何额外的安全性。
请注意,一旦设置了密码并对数据进行了加密,就不能再更改密码,因为应用项目将无法再解密数据。
密码必须至少为** 24个字符长**。混合数字 建议使用大小写字母。加密密码 必须保密。
重要
如果丢失或更改了加密密码,则无法恢复加密的数据。如果密码丢失,则加密的数据也会丢失。相反,如果 密码已泄露。因此,应考虑将密码存储在安全的地方。
请注意,由于加密密钥存储在配置文件 dhis.conf 中,而不是数据库中。 中,因此在通过转储和还原在服务器环境之间移动数据库时,加密密钥必须在不同环境中保持一致,以便 DHIS 2 解密数据库内容。
请注意,加密支持取决于 Java Cryptography Extension (JCE) 策略文件是否可用。这些文件包含在所有版本的 OpenJDK 和 Oracle JDK 8 Update 144 或更高版本中。
系统配置¶
本节介绍各种系统配置属性。
system.read_only_mode = on | off
将系统设置为只读模式。当您在只读副本数据库上运行 DHIS 2 时,这很有用,以避免 DHIS 2 执行数据库写入操作。可以是开或关。默认为关闭。
system.session.timeout = (seconds)
以秒为单位设置用户会话超时。默认为 3600 秒(1 小时)。
system.sql_view_table_protection = on | off
启用或禁用 SQL 视图的敏感数据库表保护。这将禁止通过 SQL 视图查询包含敏感数据的数据库表。不建议禁用。可以是开或关。默认为开。
system.system.sql_view_write_enabled = on | off
启用或禁用 SQL 视图的写入权限。这将禁止 SQL 视图执行底层写入(查询可以是需要写入权限的选择)。不建议启用。可以是 on或 off。默认为关。
启用 TOTP(基于 OTP 的)2FA:{ #enable-totp-otp-based-2fa }¶
TOTP(基于时间的一次性密码)使用**Google Authenticator** 或**Authy**等应用程序生成具有时间敏感性的一次性密码。要启用 TOTP 2FA,请设置以下内容:
属性 login.security.totp_2fa.enabled = on
### 启用基于电子邮件的 2FA:{ #enable-email-based-2fa }
基于电子邮件的 2FA 会在登录时向用户的电子邮件地址发送验证码。用户必须输入验证码才能完成登录过程。要启用基于电子邮件的 2FA,请设置以下内容:
属性
login.security.email_2fa.enabled = on