3.6. 文件系统路径


JBoss EAP 对文件系统路径使用逻辑名称。然后,配置的其他区域可以使用其逻辑名称引用路径,避免需要为每个实例使用绝对路径,并允许特定主机配置解析为通用逻辑名称。

例如,默认的 日志记录子系统 配置声明 jboss.server.log.dir 作为服务器日志目录的逻辑名称。

示例:服务器日志目录的相对路径示例

<file relative-to="jboss.server.log.dir" path="server.log"/>

JBoss EAP 自动提供多个标准路径,无需用户在配置文件中配置它们。

表 3.3. 标准路径
属性描述

java.ext.dirs

Java 开发工具包扩展目录路径。

java.home

Java 安装目录

jboss.controller.temp.dir

单机服务器和受管域的通用别名。用于临时文件存储的目录。等同于受管域中的 jboss.domain.temp.dir,以及单机服务器上的 jboss.server.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.confdomain.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>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.