3.6. 文件系统路径
JBoss EAP 对文件系统路径使用逻辑名称。然后,配置的其他区域可以使用其逻辑名称引用路径,避免需要为每个实例使用绝对路径,并允许特定主机配置解析为通用逻辑名称。
例如,默认的 日志记录子系统
配置声明 jboss.server.log.dir
作为服务器日志目录的逻辑名称。
示例:服务器日志目录的相对路径示例
<file relative-to="jboss.server.log.dir" path="server.log"/>
JBoss EAP 自动提供多个标准路径,无需用户在配置文件中配置它们。
属性 | 描述 |
---|---|
java.ext.dirs | Java 开发工具包扩展目录路径。 |
java.home | Java 安装目录 |
jboss.controller.temp.dir |
单机服务器和受管域的通用别名。用于临时文件存储的目录。等同于受管域中的 |
jboss.domain.base.dir | 域内容的基础目录。 |
jboss.domain.config.dir | 包含域配置的目录。 |
jboss.domain.data.dir | 域将用于持久数据文件存储的目录。 |
jboss.domain.log.dir | 域将用于持久日志文件存储的目录。 |
jboss.domain.temp.dir | 域将用于临时文件存储的目录。 |
jboss.domain.deployment.dir | 域用于存储部署的内容的目录。 |
jboss.domain.servers.dir | 域用于存储受管域实例输出的目录。 |
jboss.home.dir | JBoss EAP 分发的根目录。 |
jboss.server.base.dir | 单机服务器内容的基础目录。 |
jboss.server.config.dir | 包含单机服务器配置的目录。 |
jboss.server.data.dir | 单机服务器将用于持久数据文件存储的目录。 |
jboss.server.log.dir | 单机服务器将用于日志文件存储的目录。 |
jboss.server.temp.dir | 单机服务器将用于临时文件存储的目录。 |
jboss.server.deploy.dir | 单机服务器用于存储部署的内容的目录。 |
user.dir | 用户的当前工作目录。 |
user.home | 用户主目录。 |
3.6.1. 覆盖标准路径
您可以覆盖以 jboss. server prerequisites 或
。这可以通过以下两种方式之一完成:
jboss.
domainadtrust 开头的标准路径的默认位置
启动服务器时传递命令行参数。例如:
$ EAP_HOME/bin/standalone.sh -Djboss.server.log.dir=/var/log
修改服务器配置文件(
standalone.conf
或domain.conf
)中的JAVA_OPTS
变量。例如:JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=/var/log"
覆盖受管域的标准路径
在本例中,目标是将域文件存储在 /opt/jboss_eap/domain_data
目录中,并为每个顶级目录分配一个自定义名称。使用默认目录分组( by-server
)。
-
日志文件要存储在
all_logs
子目录中 -
数据文件要存储在
all_data
子目录中 -
临时文件存储在
all_temp
子目录中 -
服务器的文件存储在
all_servers
子目录中
要实现此配置,您可以在启动 JBoss EAP 时覆盖多个系统属性。
$ EAP_HOME/bin/domain.sh -Djboss.domain.temp.dir=/opt/jboss_eap/domain_data/all_temp -Djboss.domain.log.dir=/opt/jboss_eap/domain_data/all_logs -Djboss.domain.data.dir=/opt/jboss_eap/domain_data/all_data -Djboss.domain.servers.dir=/opt/jboss_eap/domain_data/all_servers
生成的路径结构如下:
/opt/jboss_eap/domain_data/ ├── all_data ├── all_logs ├── all_servers │ ├── server-one │ │ ├── data │ │ ├── log │ │ └── tmp │ └── server-two │ ├── data │ ├── log │ └── tmp └── all_temp
3.6.2. 添加自定义路径
您可以使用管理 CLI 或管理控制台添加自定义文件系统路径。
通过管理 CLI,您可以使用以下管理 CLI 命令添加新路径。
/path=my.custom.path:add(path=/my/custom/path)
- 在管理控制台中,您可以通过导航到 Configuration 选项卡并选择 Paths 来配置文件系统路径。在这里,您可以添加、修改和删除路径。
然后您可以在配置中使用此自定义路径。例如,以下日志处理程序为其相对路径使用自定义路径。
<subsystem xmlns="urn:jboss:domain:logging:3.0"> ... <periodic-rotating-file-handler name="FILE" autoflush="true"> <formatter> <named-formatter name="PATTERN"/> </formatter> <file relative-to="my.custom.path" path="server.log"/> <suffix value=".yyyy-MM-dd"/> <append value="true"/> </periodic-rotating-file-handler> ... </subsystem>
3.6.3. 目录分组
在受管域中,每台服务器的文件存储在 EAP_HOME/domain
目录中。您可以使用主机控制器的 directory-grouping
属性来指定如何为服务器组织子目录。目录可以按 服务器 分组,或者 按类型 进行分组。默认情况下,目录按 服务器 分组。
按服务器划分的目录
默认情况下,目录按服务器分组。如果您的管理是以 服务器为中心的,则建议使用此配置。例如,它允许为每个服务器实例配置备份和日志文件处理。
如果使用 ZIP 安装方法安装 JBoss EAP,则默认目录结构(按服务器分组)将如下所示:
EAP_HOME/domain └─ servers ├── server-one │ ├── data │ ├── tmp │ └── log └── server-two ├── data ├── tmp └── log
要按服务器对域目录进行分组,请输入以下管理 CLI 命令:
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-server)
这将更新主机控制器的 host.xml
配置文件:
<servers directory-grouping="by-server"> <server name="server-one" group="main-server-group"/> <server name="server-two" group="main-server-group" auto-start="true"> <socket-bindings port-offset="150"/> </server> </servers>
按类型划分的目录
您可以使用文件类型对目录进行分组,而不是按服务器对目录进行分组。如果您的管理是以 类型为中心的文件,则建议使用此配置。例如,这可让您只 备份数据
文件。
如果使用 ZIP 安装方法安装 JBoss EAP,并且域的文件按类型分组,则目录结构将如下所示:
EAP_HOME/domain ├── data │ └── servers │ ├── server-one │ └── server-two ├── log │ └── servers │ ├── server-one │ └── server-two └── tmp └── servers ├── server-one └── server-two
要根据类型对域目录进行分组,请输入以下管理 CLI 命令:
/host=HOST_NAME:write-attribute(name=directory-grouping,value=by-type)
这将更新主机控制器的 host.xml
配置文件:
<servers directory-grouping="by-type"> <server name="server-one" group="main-server-group"/> <server name="server-two" group="main-server-group" auto-start="true"> <socket-bindings port-offset="150"/> </server> </servers>