1.4. JBoss EAP 网络和端口配置


您可以使用 JBoss EAP 配置各种服务的网络可访问性,并使用端口偏移来在使用相同的接口的同一计算机上轻松地运行多个 JBoss EAP 实例。网络配置是按照接口和套接字绑定进行组织的。

请使用以下有关这些网络和端口配置的详细信息,来成功运行 JBoss EAP。

1.4.1. 接口

JBoss EAP 在整个配置中引用了命名接口。您可以将 JBoss EAP 配置为引用具有逻辑名称的单个接口声明,而不用在每次使用时需要接口的全部详情。

您还可以在受管域中更轻松地配置,其中网络接口详情在多个机器之间可能会有所不同。每个服务器实例可以对应一个逻辑名称组。

standalone.xmldomain.xmlhost.xml 文件都包含接口声明。根据使用的默认配置,有几个预配置的接口名称。management 接口可用于需要管理层的所有组件和服务,包括 HTTP 管理端点。public 接口可用于所有应用相关的网络通信。unsecure 接口用于标准配置中的 IIOP 套接字。private 接口用于标准配置中的 JGroups 套接字。

1.4.1.1. 默认接口配置

JBoss EAP 包括以下四个默认接口:

<interfaces>
  <interface name="management">
    <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
  </interface>
  <interface name="public">
    <inet-address value="${jboss.bind.address:127.0.0.1}"/>
  </interface>
  <interface name="private">
    <inet-address value="${jboss.bind.address.private:127.0.0.1}"/>
  </interface>
  <interface name="unsecure">
    <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
  </interface>
</interfaces>
Copy to Clipboard Toggle word wrap

默认情况下,JBoss EAP 将这些接口绑定到 127.0.0.1,但可以通过设置适当的属性在运行时覆盖这些值。例如,通过以下命令将 JBoss EAP 启动为单机服务器时可以设置 public 接口的 inet-address

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
Copy to Clipboard Toggle word wrap

或者,您也可以在 server start 命令行上使用 -b 参数。

重要

如果您修改 JBoss EAP 使用的默认网络接口或端口,您也必须更改任何使用修改后的接口或端口的脚本。其中包括 JBoss EAP 服务脚本,以及在访问管理控制台或管理 CLI 时指定正确的接口和端口。

1.4.1.2. 可选的接口配置

通过为物理接口指定逻辑名称和选择条件来声明网络接口。选择条件可以引用通配符地址,或者指定接口或地址必须是一个有效匹配的一个或多个特征集。

您可以使用管理控制台或管理 CLI 配置接口。本节后面的信息包括添加和更新接口的多个示例。首先显示管理 CLI 命令,后跟对应的配置 XML。

1.4.1.2.1. 具有 NIC 值的接口

您可以使用以下示例添加一个 NIC 值为 eth0 的新接口。

/interface=external:add(nic=eth0)
Copy to Clipboard Toggle word wrap
<interface name="external">
   <nic name="eth0"/>
</interface>
Copy to Clipboard Toggle word wrap
1.4.1.2.2. 具有多个条件值的接口

如果其正在运行,您可以使用以下示例添加一个与正确子网上任何接口或地址匹配的新接口,支持多播,且不是点对点。

/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
Copy to Clipboard Toggle word wrap
<interface name="default">
   <subnet-match value="192.168.0.0/16"/>
   <up/>
   <multicast/>
   <not>
      <point-to-point/>
   </not>
</interface>
Copy to Clipboard Toggle word wrap
1.4.1.2.3. 更新接口属性

在本例中,您可以更新 public 接口的默认 inet-address 值,保持 jboss.bind.address 属性,以便可以在运行时设置此值。

/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
Copy to Clipboard Toggle word wrap
<interface name="public">
    <inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
Copy to Clipboard Toggle word wrap
1.4.1.2.4. 受管域中服务器的其他接口

您可以使用以下代码,向受管域中的服务器添加更多接口。

/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
Copy to Clipboard Toggle word wrap
<servers>
   <server name="SERVER_NAME" group="main-server-group">
      <interfaces>
         <interface name="INTERFACE_NAME">
            <inet-address value="127.0.0.1"/>
         </interface>
      </interfaces>
   </server>
</servers>
Copy to Clipboard Toggle word wrap

1.4.2. 套接字绑定

使用套接字绑定和套接字绑定组来定义网络端口以及它们与 JBoss EAP 配置所需的网络接口的关系。套接字绑定是套接字的命名配置。套接字绑定组是套接字绑定声明的集合,这些声明按照逻辑名称分组。

这允许配置的其他部分根据其逻辑名称引用套接字绑定,而不必在每次使用套接字配置的完整详情。

您可以在 standalone.xmldomain.xml 配置文件中找到这些命名配置的声明。单机服务器仅包含一个套接字绑定组,而受管域则可包含多个组。您可以为受管域中的每个服务器组创建一个套接字绑定组,或者在多个服务器组之间共享套接字绑定组。

JBoss EAP 默认使用的端口取决于使用的套接字绑定组以及您各个部署的要求。

JBoss EAP 配置的套接字绑定组中可以定义三种类型的套接字绑定:

进站套接字绑定
socket-binding 元素用于为 JBoss EAP 服务器配置入站套接字绑定。默认 JBoss EAP 配置提供多个预配置的 socket-binding 元素,例如用于 HTTP 和 HTTPS 流量的元素。
远程出站套接字绑定
remote-destination-outbound-socket-binding 元素用于为远程到 JBoss EAP 服务器的目的地配置出站套接字绑定。默认 JBoss EAP 配置提供一个示例远程目标套接字绑定,可用于邮件服务器。
本地出站套接字绑定
local-destination-outbound-socket-binding 元素用于为属于 JBoss EAP 服务器本地的目的地配置出站套接字绑定。预计通常不会使用这种套接字绑定。

1.4.2.1. 管理端口

默认情况下,JBoss EAP 8.0 将端口 9990 用于本地管理(由管理 CLI 使用)以及基于 Web 的管理控制台使用的 HTTP 管理。用作 JBoss EAP 6 中的原生管理端口的端口 9999 不再使用,但在需要时仍可启用。

如果为管理控制台启用了 HTTPS,则默认使用端口 9993

1.4.2.2. 默认的套接字绑定

JBoss EAP 为预定义的五个配置集(default, ha, full, full-ha, load-balancer)的每一个都提供了一个套接字绑定组。

重要

如果您修改 JBoss EAP 使用的默认网络接口或端口,您也必须更改任何使用修改后的接口或端口的脚本。其中包括 JBoss EAP 服务脚本,以及在访问管理控制台或管理 CLI 时指定正确的接口和端口。

1.4.2.2.1. 独立服务器的套接字绑定组

作为单机服务器运行时,每个配置文件仅定义一个套接字绑定组。每个独立配置文件(standalone.xmlstandalone-ha.xmlstandalone-full.xmlstandalone-full-ha.xmlstandalone-load-balancer.xml)定义其对应配置集所使用的技术的套接字绑定。

例如,默认的独立配置文件(standalone.xml)指定以下套接字绑定:

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>
Copy to Clipboard Toggle word wrap
1.4.2.2.2. 受管域中的套接字绑定组

在受管域中运行时,所有套接字绑定组都在 domain.xml 文件中定义。有五个预定义的套接字绑定组:

  • standard-sockets
  • ha-sockets
  • full-sockets
  • full-ha-sockets
  • load-balancer-sockets

每个套接字绑定组都指定其对应配置集所使用的技术套接字绑定。例如,full-ha-sockets 套接字绑定组定义几个 jgroups 套接字绑定,供 full-ha 配置文件用于高可用性。

<socket-binding-groups>
  <socket-binding-group name="standard-sockets" default-interface="public">
    <!-- Needed for server groups using the 'default' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'ha' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full' profile  -->
    ...
  </socket-binding-group>
  <socket-binding-group name="full-ha-sockets" default-interface="public">
    <!-- Needed for server groups using the 'full-ha' profile  -->
    <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
    <socket-binding name="http" port="${jboss.http.port:8080}"/>
    <socket-binding name="https" port="${jboss.https.port:8443}"/>
    <socket-binding name="iiop" interface="unsecure" port="3528"/>
    <socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
    <socket-binding name="jgroups-mping" interface="private" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/>
    <socket-binding name="jgroups-tcp" interface="private" port="7600"/>
    <socket-binding name="jgroups-udp" interface="private" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
    <socket-binding name="modcluster" port="0" multicast-address="224.0.1.105" multicast-port="23364"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
      <remote-destination host="localhost" port="25"/>
    </outbound-socket-binding>
  </socket-binding-group>
  <socket-binding-group name="load-balancer-sockets" default-interface="public">
    <!-- Needed for server groups using the 'load-balancer' profile  -->
    ...
  </socket-binding-group>
</socket-binding-groups>
Copy to Clipboard Toggle word wrap
注意

管理接口的套接字配置在域控制器的 host.xml 文件中定义。

1.4.2.3. 配置套接字绑定

在定义套接字绑定时,您可以配置 portinterface 属性,以及多播设置,如 multicast-addressmulticast-port

流程

可以使用管理控制台或管理 CLI 配置套接字绑定。下列步骤介绍了添加套接字绑定组、添加套接字绑定和使用管理 CLI 配置套接字绑定设置。

  1. 添加新套接字绑定组。

    注意

    在将 JBoss EAP 实例作为独立服务器运行时,您无法添加额外的套接字绑定。您可以删除、添加或修改现有的套接字绑定。

    /socket-binding-group=new-sockets:add(default-interface=public)
    Copy to Clipboard Toggle word wrap
  2. 添加套接字绑定。

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
    Copy to Clipboard Toggle word wrap
  3. 将套接字绑定更改为使用默认接口,由套接字绑定组设置。

    /socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)
    Copy to Clipboard Toggle word wrap

以下示例显示了在上述步骤完成后 XML 配置可以如何进行。

<socket-binding-groups>
    ...
    <socket-binding-group name="new-sockets" default-interface="public">
        <socket-binding name="new-socket-binding" interface="unsecure" port="1234"/>
    </socket-binding-group>
</socket-binding-groups>
Copy to Clipboard Toggle word wrap

1.4.2.4. 端口偏移

端口偏移是一个数字偏移值,添加到该服务器的套接字绑定组中指定的所有端口值中。这允许服务器继承其套接字绑定组中定义的端口值,使用偏移来确保它与同一主机和接口上的任何其他服务器不会冲突。例如,如果套接字绑定组的 HTTP 端口为 8080,并且服务器使用端口偏移 100,则其 HTTP 端口为 8180

本本节后面的信息是使用管理 CLI 对受管域中的服务器设置 250 端口偏移的示例。

/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
Copy to Clipboard Toggle word wrap

端口偏移可用于受管域中的服务器和在同一主机上运行多个单机服务器。

使用 jboss.socket.binding.port-offset 属性启动单机服务器时,您可以传递端口偏移。

$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
Copy to Clipboard Toggle word wrap

端口偏移使用 JBoss 配置文件中的系统属性名称定义。您可以更改系统属性名称,或将其删除并写死端口偏移设置。

<socket-binding-group name="standard-sockets" default-interface="public" port-offset ="${jboss.socket.binding.port-offset:0}">
Copy to Clipboard Toggle word wrap

1.4.3. IPv6 地址

默认情况下,JBoss EAP 配置为使用 IPv4 地址运行。以下流程描述了如何配置 JBoss EAP 以使用 IPv6 地址运行。

1.4.3.1. 为 IPv6 地址配置 JVM 堆栈

您可以将 JBoss EAP 配置为使用 IPv6 运行。

流程

要更新启动配置来在 IPv6 地址上运行,请完成以下步骤。

  1. 打开启动配置文件。

    • 作为单机服务器运行时,编辑 EAP_HOME/bin/standalone.conf 文件(或对于 Windows Server,standalone.conf.bat)。
    • 在受管域中运行时,编辑 EAP_HOME/bin/domain.conf 文件(或对于 Windows Server,domain.conf.bat)。
  2. java.net.preferIPv4Stack 属性设置为 false

    -Djava.net.preferIPv4Stack=false
    Copy to Clipboard Toggle word wrap
  3. 附加 java.net.preferIPv6Addresses 属性,并将它设为 true

    -Djava.net.preferIPv6Addresses=true
    Copy to Clipboard Toggle word wrap

下例演示了在进行上述更改后,启动配置文件中的 JVM 选项如何显示。

#
# Specify options to pass to the Java VM.
#
if [ "x$JAVA_OPTS" = "x" ]; then
   JAVA_OPTS="-Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
   JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true"
else
   echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
Copy to Clipboard Toggle word wrap

1.4.3.2. 更新了 IPv6 地址的默认接口值

配置中的默认接口值可以更改为 IPv6 地址。例如,以下管理 CLI 命令将 management 接口设为 IPv6 环回地址(::1)。

/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
Copy to Clipboard Toggle word wrap

运行上述命令后,以下示例显示了 XML 配置可能的样子。

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:[::1]}"/>
    </interface>
    ....
</interfaces>
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部