第 4 章 网络和端口配置

4.1. interfaces

JBoss EAP 在整个配置中引用了命名接口。这允许配置引用带有逻辑名称的独立接口声明,而不必要求每次使用的接口的完整详情。

这也便于在受管域中配置,其中网络接口详细信息可能因多台计算机而异。每个服务器实例可以对应一个逻辑名称组。

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

4.1.1. 默认接口配置

<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>

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

$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS

或者,您也可以在 server start 命令行上使用 -b 参数。有关服务器启动选项的更多信息,请参阅服务器运行时参数

重要

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

4.1.2. 配置接口

通过为物理接口指定逻辑名称和选择条件来声明网络接口。选择条件可以引用通配符地址,或者指定接口或地址必须具有的一个或多个特征集,才能成为有效的匹配项。有关所有可用接口选择条件的列表,请参阅 Interface Attributes 部分。

接口可以使用管理控制台或管理 CLI 进行配置。以下是添加和更新接口的几个示例。首先显示管理 CLI 命令,后跟对应的配置 XML。

使用 NIC 值添加接口

添加一个 NIC 值为 eth0 的新接口。

/interface=external:add(nic=eth0)
<interface name="external">
   <nic name="eth0"/>
</interface>
使用 Several Conditional 值添加接口

添加一个与正确子网上任何接口/地址匹配的新接口(如果已启动,支持多播),且不是点对点的新接口。

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

更新 公共 接口的默认 inet-address 值,保留 jboss.bind.address 属性,以允许在运行时设置此值。

/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
<interface name="public">
    <inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
向受管域中的服务器添加接口
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
<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>