1.4. 网络和端口配置 JBoss EAP
JBoss EAP 附带接口、套接字绑定和 IPv6 地址,以帮助简化配置。使用以下关于这些网络和端口配置的详细信息,以成功运行 JBoss EAP。
1.4.1. 接口 复制链接链接已复制到粘贴板!
JBoss EAP 在整个配置中引用了命名接口。您可以将 JBoss EAP 配置为使用逻辑名称来引用单独的接口声明,而无需在每个用途中接口的完整详情。
您还可以在受管域中更轻松地配置,网络接口详情可能因多个机器而异。每个服务器实例可以对应一个逻辑名称组。
standalone.xml、domain.xml 和 host.xml 文件都包含接口声明。根据使用的默认配置,有几个预配置的接口名称。management 接口可用于需要管理层的所有组件和服务,包括 HTTP 管理端点。public 接口可用于所有应用相关的网络通信。unsecure 接口用于标准配置中的 IIOP 套接字。private 接口用于标准配置中的 JGroups 套接字。
1.4.1.1. 默认接口配置 复制链接链接已复制到粘贴板!
JBoss EAP 包括以下四个默认接口:
默认情况下,JBoss EAP 将这些接口绑定到 127.0.0.1,但可以通过设置适当的属性在运行时覆盖这些值。例如,通过以下命令将 JBoss EAP 启动为单机服务器时可以设置 public 接口的 inet-address :
EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
$ EAP_HOME/bin/standalone.sh -Djboss.bind.address=IP_ADDRESS
或者,您也可以在 server start 命令行上使用 -b 参数。
如果您修改了 JBoss EAP 使用的默认网络接口或端口,您还必须记得更改使用修改后的接口或端口的任何脚本。其中包括 JBoss EAP 服务脚本,以及记得在访问管理控制台或管理控制台或 CLI 时指定正确的接口和端口。
其他资源
- 有关服务器启动选项的更多信息,请参阅 Server Runtime Arguments。
1.4.1.2. 可选接口配置 复制链接链接已复制到粘贴板!
通过为物理接口指定逻辑名称和选择条件来声明网络接口。选择条件可以引用通配符地址,或者指定接口或地址必须具有的一个或多个特征集,才能成为有效的匹配项。
接口可以使用管理控制台或管理 CLI 进行配置。以下是添加和更新接口的几个示例。首先显示管理 CLI 命令,后跟对应的配置 XML。
其他资源
- 有关所有可用接口选择标准的列表,请参阅 Interface Attributes 部分。
1.4.1.2.1. 带有 NIC 值的接口 复制链接链接已复制到粘贴板!
您可以使用以下示例添加带有 NIC 值 eth0 的新接口。
/interface=external:add(nic=eth0)
/interface=external:add(nic=eth0)
<interface name="external"> <nic name="eth0"/> </interface>
<interface name="external">
<nic name="eth0"/>
</interface>
1.4.1.2.2. 带有多个条件值的接口 复制链接链接已复制到粘贴板!
如果运行多播,您可以使用以下示例添加匹配任何接口或正确子网上的接口或地址的新接口。
/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
/interface=default:add(subnet-match=192.168.0.0/16,up=true,multicast=true,not={point-to-point=true})
1.4.1.2.3. 对 interface 属性的更新 复制链接链接已复制到粘贴板!
在本例中,您可以更新 公共接口 的默认 inet-address 值,保留 jboss.bind.address 属性,以便您可以在运行时设置此值。
/interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:192.168.0.0}")
/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>
<interface name="public">
<inet-address value="${jboss.bind.address:192.168.0.0}"/>
</interface>
1.4.1.2.4. 受管域中的服务器的其他接口 复制链接链接已复制到粘贴板!
您可以使用以下代码为受管域中的服务器添加更多接口。
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
/host=HOST_NAME/server-config=SERVER_NAME/interface=INTERFACE_NAME:add(inet-address=127.0.0.1)
1.4.2. 套接字绑定 复制链接链接已复制到粘贴板!
通过套接字绑定和套接字绑定组,您可以定义网络端口及其与 JBoss EAP 配置所需的网络接口的关系。套接字绑定是套接字的命名配置。套接字绑定组是套接字绑定声明的集合,这些声明按照逻辑名称分组。
这允许配置的其他部分根据其逻辑名称引用套接字绑定,而不必在每次使用套接字配置的完整详情。
这些指定配置的声明可以在 standalone.xml 和 domain.xml 配置文件中找到。单机服务器仅包含一个套接字绑定组,而受管域则可包含多个组。您可以为受管域中的每个服务器组创建一个套接字绑定组,或者在多个服务器组之间共享套接字绑定组。
JBoss EAP 默认使用的端口取决于使用的套接字绑定组以及您各个部署的要求。
JBoss EAP 配置的套接字绑定组中可以定义三种类型的套接字绑定:
- 入站套接字绑定
-
socket-binding元素用于为 JBoss EAP 服务器配置入站套接字绑定。默认 JBoss EAP 配置提供多个预配置的socket-binding元素,例如用于 HTTP 和 HTTPS 流量的元素。另一个示例包括在为 JBoss EAP 配置消息传递的广播组小节。 - 远程出站套接字绑定
-
remote-destination-outbound-socket-binding元素用于为远程到 JBoss EAP 服务器的目的地配置出站套接字绑定。默认 JBoss EAP 配置提供一个示例远程目标套接字绑定,可用于邮件服务器。 - 本地出站套接字绑定
local-destination-outbound-socket-binding元素用于为属于 JBoss EAP 服务器本地的目的地配置出站套接字绑定。预计通常不会使用这种套接字绑定。此元素的属性可在 Local Outbound Socket Binding Attributes 表中找到。
其他资源
- 要查看入站套接字绑定的属性,请参阅 Inbound Socket Binding Attributes 表。
- 要查看远程出站套接字绑定的属性,请参阅 Remote Outbound Socket Binding Attributes 表。
- 有关远程出站套接字绑定的其他示例,请参阅 为 JBoss EAP 配置 Messaging 的 Remote Connections 部分的 Integrated Artemis 资源适配器。
- 要查看本地出站套接字绑定的属性,请参阅 Local Outbound Socket Binding Attributes 表。
1.4.2.1. 管理端口 复制链接链接已复制到粘贴板!
JBoss EAP 7 中整合了管理端口。默认情况下,JBoss EAP 7 将端口 9990 用于本地管理(由管理 CLI 使用)和 HTTP 管理(由基于 Web 的管理控制台使用)。用作 JBoss EAP 6 中的原生管理端口的端口 9999 不再使用,但在需要时仍可启用。
如果为管理控制台启用了 HTTPS,则默认使用端口 9993。
1.4.2.2. 默认套接字绑定 复制链接链接已复制到粘贴板!
JBoss EAP 为预定义的五个配置集(default, ha, full, full-ha, load-balancer)的每一个都提供了一个套接字绑定组。
如果您修改了 JBoss EAP 使用的默认网络接口或端口,您还必须记得更改使用修改后的接口或端口的任何脚本。其中包括 JBoss EAP 服务脚本,以及记得在访问管理控制台或管理控制台或 CLI 时指定正确的接口和端口。
其他资源
- 有关默认套接字绑定的详细信息,如默认端口和描述,请参阅 Default Socket Bindings 部分。
1.4.2.2.1. 独立服务器 复制链接链接已复制到粘贴板!
作为单机服务器运行时,每个配置文件仅定义一个套接字绑定组。每个独立配置文件(standalone.xml、standalone-ha.xml、standalone-full.xml、standalone-full-ha.xml、standalone-load-balancer.xml)定义其对应配置集所使用的技术的套接字绑定。
例如,默认的单机配置文件(standalone.xml)指定以下套接字绑定:
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 配置文件用于高可用性。
管理接口的套接字配置在域控制器的 host.xml 文件中定义。
1.4.2.3. 配置套接字绑定 复制链接链接已复制到粘贴板!
在定义套接字绑定时,您可以配置 port 和 interface 属性,以及多播设置,如 multicast-address 和 multicast-port。有关所有可用套接字绑定属性的详情,请查看 Socket Binding Attributes 部分。
流程
可以使用管理控制台或管理 CLI 配置套接字绑定。下列步骤介绍了添加套接字绑定组、添加套接字绑定和使用管理 CLI 配置套接字绑定设置。
添加新套接字绑定组。
注意当作为单机服务器运行时,无法执行此步骤。
/socket-binding-group=new-sockets:add(default-interface=public)
/socket-binding-group=new-sockets:add(default-interface=public)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加套接字绑定。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:add(port=1234)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将套接字绑定更改为使用默认接口,由套接字绑定组设置。
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)
/socket-binding-group=new-sockets/socket-binding=new-socket-binding:write-attribute(name=interface,value=unsecure)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下示例显示了在上述步骤完成后 XML 配置可以如何进行。
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)
/host=master/server-config=server-two/:write-attribute(name=socket-binding-port-offset,value=250)
端口偏移可用于受管域中的服务器和在同一主机上运行多个单机服务器。
使用 jboss.socket.binding.port-offset 属性启动单机服务器时,您可以传递端口偏移。
EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
$ EAP_HOME/bin/standalone.sh -Djboss.socket.binding.port-offset=100
1.4.3. IPv6 地址 复制链接链接已复制到粘贴板!
默认情况下,JBoss EAP 配置为使用 IPv4 地址运行。以下流程描述了如何配置 JBoss EAP 以使用 IPv6 地址运行。
1.4.3.1. 为 IPv6 地址配置 JVM 堆栈 复制链接链接已复制到粘贴板!
您可以将 JBoss EAP 配置为使用 IPv6 运行。
流程
要将启动配置更新为在 IPv6 地址上运行,请完成以下步骤。
打开启动配置文件。
-
作为单机服务器运行时,编辑
EAP_HOME/bin/standalone.conf文件(或对于 Windows Server,standalone.conf.bat)。 -
在受管域中运行时,编辑
EAP_HOME/bin/domain.conf文件(或对于 Windows Server,domain.conf.bat)。
-
作为单机服务器运行时,编辑
将
java.net.preferIPv4Stack属性设置为false。-Djava.net.preferIPv4Stack=false
-Djava.net.preferIPv4Stack=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 附加
java.net.preferIPv6Addresses属性,并将它设为true。-Djava.net.preferIPv6Addresses=true
-Djava.net.preferIPv6Addresses=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
下例演示了在进行上述更改后,启动配置文件中的 JVM 选项如何显示。
1.4.3.2. 默认接口值更新为 IPv6 地址 复制链接链接已复制到粘贴板!
配置中的默认接口值可以更改为 IPv6 地址。例如,以下管理 CLI 命令将 管理接口 设置为 IPv6 环回地址(::1)。
/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
/interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:[::1]}")
运行此命令后,以下示例显示了 XML 配置的外观。