附录 A. 参考资料
A.1. 服务器运行时参数
应用程序服务器启动脚本在启动时可接受参数和选项。这允许服务器使用 standalone.xml、domain.xml 或 host.xml 配置文件之外的其他配置启动。
其他配置可能包括用其他套接字绑定集或次级配置来启动服务器。
可用的参数列表可以在启动时使用 -h 或 --help 选项来获取。
表 A.1. 运行时选项和参数
| 参数或选项 | 操作模式 | 描述 |
|---|---|---|
|
--admin-only |
Standalone |
设置服务器的运行类型为 |
|
--admin-only |
Domain |
设置主机控制器的运行类型为 |
|
-b=<value>, -b <value> |
Standalone, Domain |
设置系统属性 |
|
-b<interface>=<value> |
Standalone, Domain |
设置系统属性 |
|
--backup |
Domain |
保留持久性域配置的备份,即使这个主机不是域控制器。 |
|
-c=<config>, -c <config> |
Standalone |
要使用的服务器配置文件的名称。默认值是 |
|
-c=<config>, -c <config> |
Domain |
要使用的服务器配置文件的名称。默认值是 |
|
--cached-dc |
Domain |
如果主机不是域控制器且无法在引导时联系域控制器,则使用域配置的本地缓存备份进行引导。 |
|
--debug [<port>] |
Standalone |
用可选参数指定端口来激活调试模式。只有启动脚本支持它时才能使用。 |
|
-D<name>[=<value>] |
Standalone, Domain |
设置系统属性。 |
|
--domain-config=<config> |
Domain |
要使用的服务器配置文件的名称。默认值是 |
|
-h, --help |
Standalone, Domain |
显示帮助信息并退出。 |
|
--host-config=<config> |
Domain |
要使用的主机配置文件的名称。默认值是 |
|
--interprocess-hc-address=<address> |
Domain |
主机控制器应该侦听进程控制器通讯的地址。 |
|
--interprocess-hc-port=<port> |
Domain |
主机控制器应该侦听进程控制器通讯的端口。 |
|
--master-address=<address> |
Domain |
设置系统属性 |
|
--master-port=<port> |
Domain |
设置系统属性 |
|
--read-only-server-config=<config> |
Standalone |
要使用的服务器配置的名称。这与 |
|
--read-only-domain-config=<config> |
Domain |
要使用的域配置的名称。这与 |
|
--read-only-host-config=<config> |
Domain |
要使用的主机配置文件的名称。这与 |
|
-P=<url>, -P <url>, --properties=<url> |
Standalone, Domain |
从给定 URL 加载系统属性。 |
|
--pc-address=<address> |
Domain |
进程控制器用来侦听它所控制的进程通讯的地址。 |
|
--pc-port=<port> |
Domain |
进程控制器侦听它控制的进程的通讯的端口。 |
|
-S<name>[=<value>] |
Standalone |
设置安全属性。 |
|
-secmgr |
Standalone, Domain |
运行安装了安全管理者的服务器。 |
|
--server-config=<config> |
Standalone |
要使用的服务器配置文件的名称。默认值是 |
|
-u=<value>, -u <value> |
Standalone, Domain |
设置系统属性 |
|
-v, -V, --version |
Standalone, Domain |
显示应用程序服务版本并退出。 |
JBoss EAP 附带的配置文件被用来处理选项的行为(如 -b、-u)。如果您把配置文件修改为不再使用受这些选项控制的系统属性,那么在启动命令里添加它就不会起作用。
A.2. RPM 服务配置文件
相比 ZIP 或安装程序安装方式,JBoss EAP 的 RPM 安装包含两个额外的配置文件。服务启动脚本使用这些文件来指定JBoss EAP 启动环境。对于 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7,这些服务配置文件的位置是不同的。
表 A.2. 用于 Red Hat Enterprise Linux 6 的 RPM 配置文件
| File | 描述 |
|---|---|
|
/etc/sysconfig/eap7-standalone |
Red Hat Enterprise Linux 6 上的独立 JBoss EAP 服务器专有的设置。 |
|
/etc/sysconfig/eap7-domain |
Red Hat Enterprise Linux 6 上作为受管域运行的 JBoss EAP 服务器专有的设置。 |
表 A.3. 用于 Red Hat Enterprise Linux 7 的 RPM 配置文件
| File | 描述 |
|---|---|
|
/etc/opt/rh/eap7/wildfly/eap7-standalone.conf |
Red Hat Enterprise Linux 7 上的独立 JBoss EAP 服务器专有的设置。 |
|
/etc/opt/rh/eap7/wildfly/eap7-domain.conf |
Red Hat Enterprise Linux 7 上作为受管域运行的 JBoss EAP 服务器专有的设置。 |
A.3. RPM 服务配置文件属性
下表展示了 JBoss EAP RPM 服务的可用配置属性列表及其默认值。
如果某个属性在 RPM 服务配置文件(如 /etc/sysconfig/eap7-standalone)和 JBoss EAP 启动配置文件(如 EAP_HOME/bin/standalone.conf)都有相同的名称,那么 JBoss EAP 启动配置文件里的值将优先使用。JAVA_HOME 就是这类属性中的一个。
表 A.4. RPM 服务配置文件属性
| 属性 | 描述 |
|---|---|
|
JAVA_HOME |
Java Runtime Environment 的安装目录。
默认值: |
|
JAVAPTH |
Java 可执行文件的安装路径。
默认值: |
|
WILDFLY_STARTUP_WAIT |
在接收启动或重启命令后,init 脚本在确认服务器已启动成功前等待的时间(秒)。这个属性只适用于 Red Hat Enterprise Linux 6。
默认值: |
|
WILDFLY_SHUTDOWN_WAIT |
在接收停止或重启命令时,init 脚本在等待服务器关闭前等待的时间(秒)。这个属性只适用于 Red Hat Enterprise Linux 6。
默认值: |
|
WILDFLY_CONSOLE_LOG |
CONSOLE 日志处理程序将被重定向的文件。
对于独立服务器,默认值是 |
|
WILDFLY_SH |
用于启动 JBoss EAP 服务器的脚本。
对于独立服务器,默认值是 |
|
WILDFLY_SERVER_CONFIG |
要使用的服务器配置文件。
这个属性没有默认值。在启动时可以定义为 |
|
WILDFLY_HOST_CONFIG |
对于受管域,这个属性允许用户指定主机配置文件(如 |
|
WILDFLY_MODULEPATH |
JBoss EAP 模块目录的路径。
默认值: |
|
WILDFLY_BIND |
设置系统属性 |
A.4. JBoss EAP 子系统概述
下表包括了 JBoss EAP 子系统的概述信息。
表 A.5. JBoss EAP 子系统
| JBoss EAP 子系统 | 描述 |
|---|---|
|
batch-jberet | |
|
bean-validation |
为验证 Java 对象数据来配置 bean 验证。 |
|
datasources |
创建并配置数据源,管理 JDBC 数据库驱动。 |
|
deployment-scanner |
配置部署扫描器来监测部署应用程序的特定位置。 |
|
ee |
在 Java EE 平台中配置常规功能,如定义全局模块、启用基于描述符的属性替换、配置默认绑定。 |
|
ejb3 |
配置 Enterprise JavaBeans(EJBs),包括会话和 message-driven bean。
|
|
iiop-openjdk |
为 JTS 事务和其它 ORB 服务(包括安全性)配置 CORBA (Common Object Request Broker Architecture)。在 JBoss EAP 6 中,这个功能包括在 |
|
infinispan |
为 JBoss EAP 高可用性服务配置缓存功能。 |
|
io | |
|
jaxrs |
启用 JAX-RS 应用程序的部署,以及相关功能。 |
|
jca |
为 JCA(Java EE Connector Architecture)容器和资源适配器配置常规设置。 |
|
jdr |
启用用来帮助进行故障排除的诊断数据收集功能。JBoss EAP 的订阅用户在向红帽请求支持时,可以提供这些信息。 |
|
jgroups |
配置协议堆栈,以及集群中的服务器间使用的通讯机制。 |
|
jmx |
配置 JMX(Java Management Extensions)远程访问。 |
|
jpa |
管理 JPA(Java Persistence API)2.1 容器管理的需要,并允许您部署持久性单元定义、注解和描述符。
JBoss EAP 开发指南中包括了更多与 |
|
jsf |
管理 JSF(JavaServer Faces)的实现。 |
|
jsr77 |
提供 JSR-77 规格中定义的 Java EE 管理功能。 |
|
logging |
通过日志目录(log category)和日志 handler 配置系统级和应用程序级的日志功能。 |
|
|
通过配置 mail 服务器属性和自定义 mail 传输创建一个邮件服务,在 JBoss EAP 中部署的应用程序可以通过这个服务发送邮件。 |
|
messaging-activemq |
配置 JMS 目的地、连接工厂、Artemis 的其它配置,以及集成的消息厂商。在 JBoss EAP 6 中,消息功能包括在
为 JBoss EAP 配置消息服务中包括了更多与 |
|
modcluster |
配置服务器方的 mod_cluster worker 节点。 |
|
naming |
把项绑定到全局 JNDI 命名空间,并配置远程 JNDI 接口。 |
|
picketlink-federation |
配置 PicketLink 基于 SAML 的单点登录功能(SSO)。
JBoss EAP如何使用 SAML v2 设置 SSO 中包括了更多与 |
|
picketlink-identity-management |
配置 PicketLink 身份管理服务。这个子系统不被支持。 |
|
pojo |
启用部署包括被以前 JBoss EAP 版本支持的 JBoss Microcontainer 服务的应用程序。 |
|
remoting |
为本地和远程服务配置入站(inbound)和出站(outbound)连接。 |
|
request-controller |
为安全挂起和关闭服务器进行配置。 |
|
resource-adapters |
配置和维护资源适配器(resource adapter)用来使用 JCA(Java Connector Architecture)规格进行 Java EE 应用程序和 EIS(Enterprise Information System)间的通讯。 |
|
rts |
不被支持的 REST-AT 的实现。 |
|
sar |
启用部署包括被以前JBoss EAP 版本支持的 MBean 服务的 SAR 归档。 |
|
安全 |
配置应用程序安全设置。
JBoss EAP 安全架构中包括了与 |
|
security-manager |
配置 Java Security Manager 使用的 Java 安全策略。
JBoss EAP 如何配置服务器安全包括了更多与 |
|
singleton |
定义单例(singleton)策略以配置单例部署的行为,或创建单例 MSC 服务的行为。
JBoss EAP 开发指南中包括了更多与 |
|
事务 |
配置事务管理器选项,如超时值、事务日志,以及是否使用 JTS(Java Transaction Service)。 |
|
undertow |
配置 JBoss EAP 的 web 服务器和 servlet 容器设置。在 JBoss EAP 6 中,这个功能包括在 |
|
webservices |
为 web 服务厂商配置公布的端点地址和端点 handler 链、主机名、端口和 WSDL 地址。
JBoss EAP 开发 Web 服务应用程序中包括了更多与 |
|
weld |
为 JBoss EAP 配置 CDI(Contexts and Dependency Injection)。 |
|
xts |
为在一个事务中协调 web 服务配置设置。 |
A.5. Add-User 工具参数
下表描述了 add-user.sh 或 add-user.bat(这是添加可立即验证的新用户至属性文件的工具)的可用参数。
表 A.6. Add-User 命令参数
| 命令行参数 | 描述 |
|---|---|
|
-a |
在应用程序域(realm)里创建用户。如果没有使用,默认是在管理域里创建一个用户。 |
|
-dc <value> |
包含属性文件的域配置目录。如果没有使用,默认目录是 |
|
-sc <value> |
包含属性文件的替代独立服务器配置目录。如果没有使用,默认目录是 |
|
-up, --user-properties <value> |
替代的用户属性文件的名称。它可以是绝对路径,也可以是和指定替代配置目录的 |
|
-g, --group <value> |
分配给这个用户的一个用逗号隔开的组的列表。 |
|
-gp, --group-properties <value> |
替代的组属性文件的名称。它可以是绝对路径,也可以是和指定替代配置目录的 |
|
-p, --password <value> |
用户的密码。 |
|
-u, --user <value> |
用户名称。有效字符是字母、数字和下列字符: |
|
-r, --realm <value> |
用户保护管理接口的区名。如果忽略,默认值是 |
|
-s, --silent |
不带控制台输出地运行 |
|
-e, --enable |
启用用户。 |
|
-d, --disable |
禁用用户。 |
|
-cw, --confirm-warning |
在交互模式里自动确认警告。 |
|
-h, --help |
显示 |
A.6. 管理审计日志属性
表 A.7. Logger 属性
| 属性 | 描述 |
|---|---|
|
enabled |
是否启用审计日志。 |
|
log-boot |
服务器引导时是否应该为操作记录日志。 |
|
log-read-only |
是否应该为没有修改配置的操作或任何运行时服务记录日志。 |
表 A.8. 日志格式器属性
| 属性 | 描述 |
|---|---|
|
compact |
如果为 |
|
date-format |
|
|
date-separator |
日期和格式化的日志消息的剩余部分间的分割符。如果 |
|
escape-control-characters |
如果为 |
|
escape-new-line |
如果为 |
|
include-date |
是否在格式化的日志记录里包含日期。 |
表 A.9. 文件处理程序属性
| 属性 | 描述 |
|---|---|
|
disabled-due-to-failure |
这个处理程序是否由于失败的日志记录而已被禁用(只读属性)。 |
|
failure-count |
在处理程序初始化后,记录日志失败的次数(只读属性)。 |
|
formatter |
用于格式化日志消息的 JSON 格式器。 |
|
max-failure-count |
在禁用这个日志处理程序前记录日志失败的最多次数。 |
|
路径 |
审计日志文件的路径。 |
|
relative-to |
一个之前命名的路径或系统提供的标准路径之一的名称。如果提供了 |
表 A.10. Syslog 处理程序属性
| 属性 | 描述 |
|---|---|
|
app-name |
如 RFC-5424 的 6.2.5 章节定义的,添加至 syslog 记录的应用程序名称。如果未指定,它默认是产品的名称。 |
|
disabled-due-to-failure |
这个处理程序是否由于失败的日志记录而已被禁用(只读属性)。 |
|
facility |
如 RFC-5424 的 6.2.1 章节和 RFC-3164 的 4.1.1 章节所定义的用于 syslog 日志的工具。 |
|
failure-count |
在处理程序初始化后,记录日志失败的次数(只读属性)。 |
|
formatter |
用于格式化日志消息的 JSON 格式器。 |
|
max-failure-count |
在禁用这个日志处理程序前记录日志失败的最多次数。 |
|
max-length |
所允许的日志消息(包括头部)的最大长度(字节)。如果未定义,当 |
|
protocol |
用于 syslog 处理程序的协议。必须是 |
|
syslog-format |
syslog 格式: |
|
truncate |
如果消息(包括头部信息)的长度(字节数)大于 |
Syslog 服务器的实现各有不同,所以不是所有的设置都适用于所有的 Syslog 服务器。我们已使用 rsyslog syslog 进行了测试。
这个表只列出高级别的属性。每个属性都有配置参数,一些还有子配置参数。
A.7. 接口属性
表 A.11. 接口属性和值
| 接口元素 | 描述 |
|---|---|
|
any |
指定接口的选择标准的一部分应该满足至少一个(但不需要全部)嵌套标准集。 |
|
any-address |
空元素表示使用这个接口的套接字应该绑定至通配符地址。除非将 |
|
inet-address |
IPv6 或 IPv4 用句点分隔的 IP 地址,或是可解析为 IP 地址的主机名。 |
|
link-local-address |
指定接口的选择标准的一部分是否应该是与 link-local 关联的地址。 |
|
loopback |
指定接口的选择标准的一部分是否应该是 loopback 接口。 |
|
loopback-address |
可能不会在主机的 loopback 接口实际配置的 loopback 地址。它与 inet-address 类型不一样,即使未找到关联 IP 地址的 NIC,给定的值都将被使用。 |
|
multicast |
指定接口的选择标准的一部分是否应该支持多点传送。 |
|
nic |
网络接口的名称(如 eth0、eth1、lo)。 |
|
nic-match |
表示主机上可用的网络接口的常规表达式,匹配它来寻找可接受的接口。 |
|
not |
指定接口的选择标准的一部分不匹配任何嵌套的标准集。 |
|
point-to-point |
指定接口的选择标准的一部分是否应该是 point-to-point 接口。 |
|
public-address |
指定接口的选择标准的一部分是否应该具有可公共路由的地址。 |
|
site-local-address |
指定接口的选择标准的一部分是否应该是与 site-local 关联的地址。 |
|
subnet-match |
网络 IP 地址,以及地址的网络前缀的位数(以斜杠格式表示,如:192.168.0.0/16)。 |
|
up |
指定接口的选择标准的一部分当前是否应该上线。 |
|
virtual |
指定接口的选择标准的一部分是否应该是虚拟接口。 |
A.8. 套接字绑定属性
表 A.12. 套接字绑定属性
| 属性 | 描述 |
|---|---|
|
client-mappings |
指定这个套接字绑定的客户映射。连接至这个套接字的客户应该使用匹配其转出接口的映射里的目的地地址。这允许使用网络地址转换的高级网络拓扑结构,或者在多个网络接口上绑定。每个映射应该以声明的顺序进行求值,第一个成功的匹配用来确定目的地。 |
|
fixed-port |
端口值是否应该保持固定,即使已应用数字偏移量至套接字组里的其他套接字。 |
|
interface |
套接字应该绑定的接口的名称,或者对于多点传送套接字来说,它应该侦听的接口。这应该是声明的接口中的一个。如果未定义,套接字绑定组里的 |
|
multicast-address |
套接字应该接收多点传送通讯的多点传送地址。如果未指定,套接字将不会接收多点传送。 |
|
multicast-port |
套接字应该接收多点传送通讯的多点传送端口,如果配置了 'multicast-address' 则必须配置它。 |
|
name |
套接字的名称。需要访问套接字配置信息的服务将用这个名称进行查找。这个属性是必需的。 |
|
port |
套接字应该绑定的端口号码。请注意如果服务器对所有端口应用了端口偏移量进行增和减,这个值可被覆盖。 |
A.9. 默认的套接字绑定
表 A.13. 默认的套接字绑定
| 名称 | 端口 | 多点传送端口 | 描述 | 套接字绑定组 |
|---|---|---|---|---|
|
ajp |
8009 |
Apache JServ 协议。用于 HTTP 集群和负载平衡。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
http |
8080 |
部署的 Web 应用程序的默认端口。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
https |
8443 |
部署的 Web 应用程序和客户间的用 SSL 加密的连接。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
iiop |
3528 |
用于 JTS 事务和依赖 ORB 的服务的 CORBA 服务。 |
full-sockets, full-ha-sockets | |
|
iiop-ssl |
3529 |
SSL 加密的 CORBA 服务。 |
full-sockets, full-ha-sockets | |
|
jgroups-mping |
45700 |
多点传送。用于发现 HA 集群里的初始成员资格。 |
ha-sockets, full-ha-sockets | |
|
jgroups-tcp |
7600 |
HA 集群里使用 TCP 的单播端点发现。 |
ha-sockets, full-ha-sockets | |
|
jgroups-tcp-fd |
57600 |
用于 TCP 上的 HA 故障检测。 |
ha-sockets, full-ha-sockets | |
|
jgroups-udp |
55200 |
45688 |
HA 集群里使用 UDP 的多点传送端点发现。 |
ha-sockets, full-ha-sockets |
|
jgroups-udp-fd |
54200 |
用于 UDP 上的 HA 故障检测。 |
ha-sockets, full-ha-sockets | |
|
management-http |
9990 |
用于管理层的 HTTP 通讯。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
management-https |
9993 |
用于管理层的 HTTPS 通讯。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
modcluster |
23364 |
用于 JBoss EAP 和 HTTP 负载平衡器间的多点传送端口。 |
ha-sockets, full-ha-sockets | |
|
txn-recovery-environment |
4712 |
JTA 事务恢复管理者。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets | |
|
txn-status-manager |
4713 |
JTA / JTS 事务管理者。 |
standard-sockets、ha-sockets、full-sockets、full-ha-sockets |
A.10. 部署扫描器的 Marker 文件
部署扫描器使用 Marker 文件来标记 JBoss EAP 服务器实例的 deployment 目录里的应用程序的状态。 Marker 文件和部署的名称相同,其后缀表示应用程序部署的状态。
例如,成功的 test-application.war 部署会有名为 test-application.war.deployed 的 marker 文件。
下表列出了可用的 marker 文件类型及含义。
表 A.14. Marker 文件类型
| 文件名称后缀 | 来源 | 描述 |
|---|---|---|
|
.deployed |
系统生成的 |
指示内容已被部署。如果删除这个文件,内容将被卸载。 |
|
.dodeploy |
用户生成的 |
表示内容应该部署还是重新部署。 |
|
.failed |
系统生成的 |
表示部署失败。Marker 文件包含和失败原因相关的信息。如果删除这个 marker 文件,内容将可以再次自动部署。 |
|
.isdeploying |
系统生成的 |
表示部署正在进行。完成后这个 marker 文件将被删除。 |
|
.isundeploying |
系统生成的 |
由删除 |
|
.pending |
系统生成的 |
表示部署扫描器承认部署内容的需要,但目前有一个问题阻止了自动部署(例如内容正在复制)。这个 marker 文件充当全局的部署障碍,表示当这个 marker 文件存在时,扫描器不会指示服务器部署或卸载任何内容。 |
|
.skipdeploy |
用户生成的 |
禁用应用程序的自动部署。它作为阻止展开内容的自动部署的临时方法,可以避免推送正在编辑的不完整的内容。它也可以用于压缩的内容,但扫描器会检测正在对压缩内容的修改并等待其完成。 |
|
.undeployed |
系统生成的 |
表示内容已被卸载。删除这个 marker 文件不会影响内容的重新部署。 |
A.11. 部署扫描器属性
部署扫描器包含下列可配置属性。
表 A.15. 部署扫描器属性
| 名称 | Default | 描述 |
|---|---|---|
|
auto-deploy-exploded |
false |
允许展开的内容自动部署而无需 |
|
auto-deploy-xml |
true |
允许 XML 内容自动部署而无需 |
|
auto-deploy-zipped |
true |
允许压缩的内容自动部署而无需 |
|
deployment-timeout |
600 |
部署扫描器在取消前允许尝试部署的时间(以秒为单位)。 |
|
路径 |
deployments |
要扫描的实际文件系统路径。它被当作绝对路径处理,除非指定了 |
|
relative-to |
jboss.server.base.dir |
到一个文件系统的路径由服务器配置中的 path 设置。 |
|
runtime-failure-causes-rollback |
false |
部署的运行时失败是否导致部署及作为扫描操作一部分的其他所有部署(可能并不相关)的回滚。 |
|
scan-enabled |
true |
允许以 |
|
scan-interval |
5000 |
应该扫描仓库的变动的时间间隔(毫秒)。小于 |
A.12. Root Logger 属性
表 A.16. Root Logger 属性
| 属性 | 描述 |
|---|---|
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了排除不匹配某个模式的日志条目的过滤器: |
|
handlers |
Root Logger 使用的日志处理程序列表。 |
|
level |
Root Logger 记录的日志消息的最低级别。 |
其他处理程序不会继承为 Root Logger 指定的 filter-spec。相反您必须为每个处理程序指定一个 filter-spec。
A.13. 日志类别属性
表 A.17. 日志类别属性
| 属性 | 描述 |
|---|---|
|
category |
捕获的日志消息所在的日志类别。 |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
handlers |
和 Logger 相关联的日志处理程序列表。 |
|
level |
日志类别记录的日志消息的最低级别。 |
|
use-parent-handlers |
如果设置为 |
A.14. 日志处理程序属性
表 A.18. 控制台日志处理程序属性
| 属性 | 描述 |
|---|---|
|
autoflush |
如果设置为 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
|
target |
日志处理程序输出所在的系统输出流。对于系统错误流和标准输出流,它分别是 System.err 和 System.out。 |
表 A.19. 文件日志处理程序属性
| 属性 | 描述 |
|---|---|
|
append |
如果设置为 |
|
autoflush |
如果设置为 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
file |
代表这个日志处理程序输出写入的文件的对象。它有两个配置属性: |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
表 A.20. 定期日志处理程序属性
| 属性 | 描述 |
|---|---|
|
append |
如果设置为 |
|
autoflush |
如果设置为 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
file |
代表这个日志处理程序输出写入的文件的对象。它有两个配置属性: |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
|
suffix |
这个字符串包含在轮换日志的后缀里。 |
表 A.21. Size 日志处理程序属性
| 属性 | 描述 |
|---|---|
|
append |
如果设置为 |
|
autoflush |
如果设置为 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
file |
代表这个日志处理程序输出写入的文件的对象。它有两个配置属性: |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
max-backup-index |
轮换日志文件保留的最大数目。当到达这个数目时,最旧的日志文件将被重用。默认为
如果使用了 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
|
rotate-on-boot |
如果设置为 |
|
rotate-size |
日志文件在轮换前可到达的最大尺寸。数字后的单个字符表示单位: |
|
suffix |
这个字符串包含在轮换日志的后缀里。 |
表 A.22. Periodic Size 日志处理程序属性
| 属性 | 描述 |
|---|---|
|
append |
如果设置为 |
|
autoflush |
如果设置为 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
file |
代表这个日志处理程序输出写入的文件的对象。它有两个配置属性: |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
max-backup-index |
轮换日志文件保留的最大数目。当到达这个数目时,最旧的日志文件将被重用。默认为
如果使用了 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
|
rotate-on-boot |
如果设置为 |
|
rotate-size |
日志文件在轮换前可到达的最大尺寸。数字后的单个字符表示单位: |
|
suffix |
这个字符串包含在轮换日志的后缀里。 |
表 A.23. Syslog 处理程序属性
| 属性 | 描述 |
|---|---|
|
app-name |
当以 RFC5424 格式格式化消息时使用的应用程序名称。默认的应用程序名称是 |
|
enabled |
如果设置为 |
|
facility |
RFC-5424 和 RFC-3164 定义的工具。 |
|
hostname |
发送消息的主机的名称。例如,运行应用服务器的主机的名称。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
port |
syslog 服务器侦听的端口。 |
|
server-address |
syslog 服务器的地址。 |
|
syslog-format |
按照 RFC 规格格式化日志消息。 |
表 A.24. 自定义日志处理程序属性
| 属性 | 描述 |
|---|---|
|
class |
要使用的日志处理程序类。 |
|
enabled |
如果设置为 |
|
encoding |
用于输出的字符编码模式。 |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
formatter |
这个日志处理程序使用的日志格式器。 |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
module |
日志处理程序依赖的模块。 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
named-formatter |
处理程序使用的格式器的名称。 |
|
properties |
用于日志处理程序的属性。 |
表 A.25. Async 日志处理程序属性
| 属性 | 描述 |
|---|---|
|
enabled |
如果设置为 |
|
filter |
定义简单的过滤器类型。已弃用,转而使用 |
|
filter-spec |
定义过滤器的表达式。下面的表达式定义了不匹配某个模式的过滤器: |
|
level |
日志处理程序记录的日志消息的最低级别。 |
|
name |
日志处理程序的名称。已弃用(处理程序的地址里已包含这个名称) |
|
overflow-action |
当超过队列长度时这个处理程序如何应对。它可以设置为 |
|
queue-length |
在等待子处理程序响应时,这个处理程序保持的日志消息的最大数目。 |
|
subhandlers |
这个异步处理程序将日志消息传入的日志处理程序列表。 |
A.15. 数据源连接 URL
表 A.26. 数据源连接 URL
| 数据源 | 连接 URL |
|---|---|
|
IBM DB2 |
jdbc:db2://SERVER_NAME:PORT/DATABASE_NAME |
|
MariaDB |
jdbc:mariadb://SERVER_NAME:PORT/DATABASE_NAME |
|
Microsoft SQL 服务器 |
jdbc:sqlserver://SERVER_NAME:PORT;DatabaseName=DATABASE_NAME |
|
MySQL |
jdbc:mysql://SERVER_NAME:PORT/DATABASE_NAME |
|
Oracle |
jdbc:oracle:thin:@SERVER_NAME:PORT:ORACLE_SID |
|
PostgreSQL |
jdbc:postgresql://SERVER_NAME:PORT/DATABASE_NAME |
|
Sybase |
jdbc:sybase:Tds:SERVER_NAME:PORT/DATABASE_NAME |
A.16. 数据源参数
表 A.27. 数据源参数
| 参数 | 数据源类型 | 描述 |
|---|---|---|
|
allocation-retry |
Non-XA, XA |
在抛出异常前分配连接应该尝试的次数。默认是 |
|
allocation-retry-wait-millis |
Non-XA, XA |
重试连接分配间等待的时间(毫秒)。默认值是 |
|
allow-multiple-users |
Non-XA, XA |
是否有多个用户将通过 |
|
background-validation |
Non-XA, XA |
连接在后台线程还是在使用前进行检验。后台检验通常不会和 |
|
background-validation-millis |
Non-XA, XA |
后台校验运行的频率(毫秒)。 |
|
blocking-timeout-wait-millis |
Non-XA, XA |
在抛出异常前等待连接时阻塞的最长时间(毫秒)。请注意,这只有在等待连接锁时才会阻塞,而且如果创建新的连接耗费很长时间也不会抛出异常。 |
|
capacity-decrementer-class |
Non-XA, XA |
定义递减池连接策略的类。 |
|
capacity-decrementer-properties |
Non-XA, XA |
在定义递减池连接策略的类里注入的属性。 |
|
capacity-incrementer-class |
Non-XA, XA |
定义递增池连接策略的类。 |
|
capacity-incrementer-properties |
Non-XA, XA |
在定义递增池连接策略的类里注入的属性。 |
|
check-valid-connection-sql |
Non-XA, XA |
检查池连接有效性的 SQL 语句。当从池里获取受管连接时可以调用它。 |
|
connectable |
Non-XA, XA |
启用 CMR 的使用,表示本地资源可以可靠地参与 XA 事务。 |
|
connection-listener-class |
Non-XA, XA |
指定继承 |
|
connection-listener-property |
Non-XA, XA |
要注入到 |
|
connection-properties |
仅用于 Non-XA |
传入 |
|
connection-url |
仅用于 Non-XA |
JDBC 驱动连接 URL。 |
|
datasource-class |
仅用于 Non-XA |
JDBC 数据源类的全限定名。 |
|
driver-class |
仅用于 Non-XA |
JDBC 驱动类的全限定名。 |
|
driver-name |
Non-XA, XA |
定义数据源应该使用的 JDBC 驱动。这是对应安装的驱动的名称的符号名称。如果驱动被部署为 JAR,这个名称就是部署的名称。 |
|
enabled |
Non-XA, XA |
是否应该启用数据源。 |
|
enlistment-trace |
Non-XA, XA |
是否应该记录 enlistment 跟踪信息。 |
|
exception-sorter-class-name |
Non-XA, XA |
提供检验异常是否应该广播错误的方法的 |
|
exception-sorter-properties |
Non-XA, XA |
exception sorter 的属性。 |
|
flush-strategy |
Non-XA, XA |
指定在发生错误时如何冲刷池。有效值是:
|
|
idle-timeout-minutes |
Non-XA, XA |
连接在关闭前可以空闲的最长时间(分钟)。实际的最长时间也取决于 IdleRemover 扫描时间,它是任何池的最小 idle-timeout-minutes 的二分之一。 |
|
initial-pool-size |
Non-XA, XA |
池应该保持的连接的初始数量。 |
|
interleaving |
只适用于 XA |
是否对 XA 连接启用 interleaving |
|
jndi-name |
Non-XA, XA |
数据源的唯一 JNDI 名称。 |
|
jta |
仅用于 Non-XA |
启用 JTA 集成。 |
|
max-pool-size |
Non-XA, XA |
池可以保持的最大数量。 |
|
mcp |
Non-XA, XA |
|
|
min-pool-size |
Non-XA, XA |
池可以保持的连接的最小数目。 |
|
new-connection-sql |
Non-XA, XA |
每当连接被添加至连接池时要执行的 SQL 语句。 |
|
no-recovery |
只适用于 XA |
连接池是否应该从恢复排除。 |
|
no-tx-separate-pool |
只适用于 XA |
是否为每个上下文创建独立的子池。某些 Oracle 数据源可能要求这样做,这可能不允许 XA 连接既用于 JTA 事务的内部又用于其外部。使用这个选项将导致您的池大小两倍于 |
|
pad-xid |
只适用于 XA |
是否覆盖 XID。 |
|
password |
Non-XA, XA |
创建新连接时使用的密码。 |
|
pool-fair |
Non-XA, XA |
定义池是否是公平的。这个设置是在 JCA 里用于管理连接池的 |
|
pool-prefill |
Non-XA, XA |
是否应该预填充池。 |
|
pool-use-strict-min |
Non-XA, XA |
是否应该严格考虑 |
|
prepared-statements-cache-size |
Non-XA, XA |
在 Least Recently Used (LRU) 缓存里每个连接的 prepared 语句的数量。 |
|
query-timeout |
Non-XA, XA |
查询超时时间(秒)。默认是不会超时。 |
|
reauth-plugin-class-name |
Non-XA, XA |
重新验证物理连接的重验证插件实现的全限定类名。 |
|
reauth-plugin-properties |
Non-XA, XA |
重验证插件的属性。 |
|
recovery-password |
只适用于 XA |
连接用于恢复的资源时使用的密码。 |
|
recovery-plugin-class-name |
只适用于 XA |
恢复插件实现的全限定类名。 |
|
recovery-plugin-properties |
只适用于 XA |
恢复插件的属性。 |
|
recovery-security-domain |
只适用于 XA |
连接用于恢复的资源时使用的安全域。 |
|
recovery-username |
只适用于 XA |
连接用于恢复的资源时使用的用户名。 |
|
same-rm-override |
只适用于 XA |
|
|
security-domain |
Non-XA, XA |
处理验证的 JAAS security-manager 的名称。这个名称对应 JAAS 登录配置的 application-policy/name 属性。 |
|
set-tx-query-timeout |
Non-XA, XA |
是否根据剩余时间设置查询超时直至事务超时。如果没有事务存在,将使用任何已配置的查询超时。 |
|
share-prepared-statements |
Non-XA, XA |
Whether JBoss EAP should cache, instead of close or terminate, the underlying physical statement when the wrapper supplied to the application is closed by application code. The default is |
|
spy |
Non-XA, XA |
启用 JDBC 驱动上的 spy 功能。这将所有 JDBC 通讯登记至数据源。请注意, |
|
stale-connection-checker-class-name |
Non-XA, XA |
提供 |
|
stale-connection-checker-properties |
Non-XA, XA |
过时连接检查器属性。 |
|
statistics-enabled |
Non-XA, XA |
是否启用运行时统计。默认值是 |
|
track-statements |
Non-XA, XA |
当连接返回至池且连接返回至预备语句缓存时是否检查未关闭的语句。如果为 false,语句不会被跟踪。它的有效值为:
|
|
tracking |
Non-XA, XA |
是否跨事务边界跟踪事务句柄。 |
|
transaction-isolation |
Non-XA, XA |
|
|
url-delimiter |
Non-XA, XA |
高可用性数据源的 connection-url 里的分隔符。 |
|
url-property |
只适用于 XA |
|
|
url-selector-strategy-class-name |
Non-XA, XA |
实现 |
|
use-ccm |
Non-XA, XA |
启用缓存的连接管理者。 |
|
use-fast-fail |
Non-XA, XA |
如果为 true,如果连接无效,连接分配在第一次尝试就会失败。如果为 false,会一直尝试直至池耗尽。 |
|
use-java-context |
Non-XA, XA |
是否将数据源绑定至全局 JNDI。 |
|
use-try-lock |
Non-XA, XA |
内部锁的超时时间。会试图在配置的时间(秒)之内获取锁,而不是在锁不可用时立即失败。请使用 |
|
user-name |
Non-XA, XA |
创建新连接时使用的用户名。 |
|
valid-connection-checker-class-name |
Non-XA, XA |
提供 |
|
valid-connection-checker-properties |
Non-XA, XA |
有效连接检查器属性 |
|
validate-on-match |
Non-XA, XA |
当连接工厂试图匹配受管连接时,是否执行连接检验。当客户在使用连接前必须进行校验时,它应该被使用。Validate-on-match 通常不会和 |
|
wrap-xa-resource |
只适用于 XA |
是否将 XAResource 打包在 |
|
xa-datasource-class |
只适用于 XA |
|
|
-properties |
只适用于 XA |
XA 数据源属性的字符串名/值对。 |
|
xa-resource-timeout |
只适用于 XA |
如果非零,这个值将被传入 |
A.17. 数据源统计
表 A.28. 核心的池统计信息
| 名称 | 描述 |
|---|---|
|
ActiveCount |
活动连接的数量。每个连接要么被应用程序使用,要么位于池里可用。 |
|
AvailableCount |
池里有效连接的数量。 |
|
AverageBlockingTime |
阻塞获取池的排斥锁所消耗的平均时间。这个值的单位是毫秒。 |
|
AverageCreationTime |
创建连接花费的平均时间(单位为毫秒)。 |
|
AverageGetTime |
获取连接平均花费的时间。 |
|
AverageUsageTime |
使用连接的平均时间。 |
|
BlockingFailureCount |
试图获取连接的失败次数。 |
|
CreatedCount |
创建的连接数量。 |
|
DestroyedCount |
销毁的连接数量。 |
|
IdleCount |
当前空闲的连接数量。 |
|
InUseCount |
当前使用的连接数量。 |
|
MaxCreationTime |
创建连接花费的最长时间(单位为毫秒)。 |
|
MaxGetTime |
获取连接花费的最长时间。 |
|
MaxPoolTime |
池里连接的最长时间。 |
|
MaxUsageTime |
使用连接的最长时间。 |
|
MaxUsedCount |
使用的连接的最大数量。 |
|
MaxWaitCount |
同一时间等待连接的请求的最大数量。 |
|
MaxWaitTime |
等待池里排他锁所消耗的最长时间。 |
|
TimedOut |
超时连接的数量。 |
|
TotalBlockingTime |
等待池的排他锁所消耗的总共时间。这个值的单位是毫秒。 |
|
TotalCreationTime |
创建连接花费的总共时间(单位为毫秒)。 |
|
TotalGetTime |
获取连接花费的总共时间。 |
|
TotalPoolTime |
池里连接花费的总共时间。 |
|
TotalUsageTime |
使用连接花费的总共时间。 |
|
WaitCount |
必须等待获取连接的请求的数量。 |
|
XACommitAverageTime |
XAResource commit 调用的平均时间。 |
|
XACommitCount |
XAResource commit 调用的次数。 |
|
XACommitMaxTime |
XAResource commit 调用的最长时间。 |
|
XACommitTotalTime |
所有 XAResource commit 调用的总共时间。 |
|
XAEndAverageTime |
XAResource end 调用的平均时间。 |
|
XAEndCount |
XAResource end 调用的次数。 |
|
XAEndMaxTime |
XAResource end 调用的最长时间。 |
|
XAEndTotalTime |
所有 XAResource end 调用的总共时间。 |
|
XAForgetAverageTime |
XAResource forget 调用的平均时间。 |
|
XAForgetCount |
XAResource forget 调用的次数。 |
|
XAForgetMaxTime |
XAResource forget 调用的最长时间。 |
|
XAForgetTotalTime |
所有 XAResource forget 调用的总共时间。 |
|
XAPrepareAverageTime |
XAResource prepare 调用的平均时间。 |
|
XAPrepareCount |
XAResource prepare 调用的次数。 |
|
XAPrepareMaxTime |
XAResource prepare 调用的最长时间。 |
|
XAPrepareTotalTime |
所有 XAResource prepare 调用的总共时间。 |
|
XARecoverAverageTime |
XAResource recover 调用的平均时间。 |
|
XARecoverCount |
XAResource recover 调用的次数。 |
|
XARecoverMaxTime |
XAResource recover 调用的最长时间。 |
|
XARecoverTotalTime |
所有 XAResource recover 调用的总共时间。 |
|
XARollbackAverageTime |
XAResource rollback 调用的平均时间。 |
|
XARollbackCount |
XAResource rollback 调用的次数。 |
|
XARollbackMaxTime |
XAResource rollback 调用的最长时间。 |
|
XARollbackTotalTime |
所有 XAResource rollback 调用的总共时间。 |
|
XAStartAverageTime |
XAResource start 调用的平均时间。 |
|
XAStartCount |
XAResource start 调用的次数。 |
|
XAStartMaxTime |
XAResource start 调用的最长时间。 |
|
XAStartTotalTime |
所有 XAResource start 调用的总共时间。 |
表 A.29. JDBC 统计信息
| 名称 | 描述 |
|---|---|
|
PreparedStatementCacheAccessCount |
语句缓存被访问的次数。 |
|
PreparedStatementCacheAddCount |
添加至语句缓存的语句数量。 |
|
PreparedStatementCacheCurrentSize |
目前缓存在语句缓存里的预备和可调用语句的数量。 |
|
PreparedStatementCacheDeleteCount |
从缓存丢弃的语句数量。 |
|
PreparedStatementCacheHitCount |
缓存里语句被使用的次数。 |
|
PreparedStatementCacheMissCount |
语句请求无法满意缓存里的请求的次数。 |
A.18. 事务管理者的配置选项
表 A.30. 事务管理者的配置选项
| 选项 | 描述 |
|---|---|
|
default-timeout |
默认的事务超时时间。默认值是 |
|
enable-statistics |
已过时。由 |
|
enable-tsm-status |
是否启用事务状态管理者(Transaction Status Manager,TSM)服务,这个服务用于进程外的恢复。这个选项不被支持,因为运行进程外恢复管理者从不同的进程来联系 |
|
hornetq-store-enable-async-io |
已过时。由 |
|
jdbc-action-store-drop-table |
JDBC 操作存储是否应该丢弃表。默认值为 |
|
jdbc-action-store-table-prefix |
表可以使用可选的前缀在配置的 JDBC 操作存储中写事务日志。 |
|
jdbc-communication-store-drop-table |
JDBC 通讯存储是否应该丢弃表。默认值为 |
|
jdbc-communication-store-table-prefix |
表可以使用可选的前缀在配置的 JDBC 通讯存储中写事务日志。 |
|
jdbc-state-store-drop-table |
JDBC 状态存储是否应该丢弃表。默认值为 |
|
jdbc-state-store-table-prefix |
表可以使用可选的前缀在配置的 JDBC 状态存储中写事务日志。 |
|
jdbc-store-datasource |
非 XA 数据源使用的 JNDI 名。数据源应该在 |
|
journal-store-enable-async-io |
是否对日志库启用 |
|
jts |
是否使用 Java Transaction Service(JTS)事务。默认值是 |
|
node-identifier |
事务管理者的节点标识符。如果没有设置这个选项,您将会在服务器启动时看到一个警告信息。下列情况下需要这个选项:
对于每个事务管理者来说,节点标识符必须是唯一的,因为在恢复期间要求数据的完整性。节点标识符对于 JTA 也必须是唯一的,因为多个节点可能与相同的资源管理者交互或共享事务对象库。 |
|
object-store-path |
事务管理者对象库存储数据的相对或绝对文件系统路径。默认是相对于 |
|
object-store-relative-to |
域模型里对全局路径配置的引用。默认值是 JBoss EAP 的数据目录,即 |
|
process-id-socket-binding |
如果事务管理者应该使用基于套接字的进程 ID,这是套接字绑定配置的名称。如果 |
|
process-id-socket-max-ports |
事务管理者为每个事务日志创建一个唯一的标识符。系统为生成唯一的标识符提供了两个不同的机制:基于套接字的机制和基于进程标识符的机制。
在使用基于套接字的标识符时,套接字将被打开且其端口号被用于标识符。如果端口已被使用,将探测下一个端口,直至找到空闲的端口。process-id-socket-max-ports 代表事务管理器将尝试直至失败的最大套接字数量。默认值是 |
|
process-id-uuid |
设置为 |
|
recovery-listener |
事务恢复过程是否应该侦听网络套接字。默认为 |
|
socket-binding |
当 |
|
statistics-enabled |
是否启用统计数据功能。 |
|
status-socket-binding |
指定用于事务状态管理者的套接字绑定。这个配置选项不受支持。 |
|
use-hornetq-store |
已过时。由 |
|
use-jdbc-store |
使用 JDBC 存储写事务日志。设为 |
|
use-journal-store |
对于事务日志使用 Apache ActiveMQ Artemis 日志存储机制而不是基于文件的存储。默认这是被禁用的,但它可以提高 I/O 性能。对于单独事务管理者上的 JTS 事务,我们不推荐使用它。当修改这个选项时,服务器必须使用 |
A.19. 资源适配器属性
下表描述了资源适配器属性。
表 A.31. 主要属性
| 属性 | 描述 |
|---|---|
|
archive |
资源适配器归档 |
|
beanvalidationgroups |
需要使用的 bean 验证组。 |
|
bootstrap-context |
使用的 bootstrap 上下文的唯一名称。 |
|
config-properties |
自定义的配置属性。 |
|
module |
资源适配器从哪个模块加载。 |
|
statistics-enabled |
是否启用运行时统计数据。 |
|
transaction-support |
资源适配器的事务支持级别。 |
|
wm-security |
为资源适配器切换启用或禁用 |
|
wm-security-default-groups |
添加到使用的 |
|
wm-security-default-principal |
添加到使用的 |
|
wm-security-domain |
需要使用的安全域的名称。 |
|
wm-security-mapping-groups |
组映射列表。 |
|
wm-security-mapping-required |
指定安全凭证是否需要一个映射。 |
|
wm-security-mapping-users |
用户映射列表。 |
表 A.32. admin-objects Attributes
| 属性 | 描述 |
|---|---|
|
class-name |
一个管理对象的完全限定类名。 |
|
enabled |
指定是否需要启用管理对象。 |
|
jndi-name |
管理对象的 JNDI 名。 |
|
use-java-context |
如果需要把对象绑定到全局 JNDI,把它设置为 false。 |
表 A.33. connection-definitions 属性
| 属性 | 描述 |
|---|---|
|
allocation-retry |
指定在抛出一个异常前,尝试分配一个连接的次数。 |
|
allocation-retry-wait-millis |
重试连接分配间等待的时间(毫秒)。 |
|
background-validation |
指定连接应该在一个后台线程中验证,还是在使用前进行验证。修改这个设置需要重启服务器。 |
|
background-validation-millis |
后台验证运行的时间(以毫秒为单位)。修改这个值需要重启服务器。 |
|
blocking-timeout-wait-millis |
在抛出异常前等待连接时阻塞的最长时间(毫秒)。请注意,这只有在等待连接锁时才会阻塞,而且如果创建新的连接耗费很长时间也不会抛出异常。 |
|
capacity-decrementer-class |
定义递减池连接策略的类。 |
|
capacity-decrementer-properties |
注入到用于定义减少池中的连接策略的类的属性。 |
|
capacity-incrementer-class |
定义递增池连接策略的类。 |
|
capacity-incrementer-properties |
注入到用于定义增加池中的连接策略的类的属性。 |
|
class-name |
受管连接工厂或管理对象的完全限定类名。 |
|
connectable |
启用 CMR 的使用。它代表本地资源可以可靠地参与 XA 事务。 |
|
enabled |
指定是否启用资源适配器。 |
|
enlistment |
指定在资源适配器支持的情况下,是否使用 lazy enlistment 功能。 |
|
enlistment-trace |
指定 JBoss EAP 或 IronJacamar 是否应该记录 enlistment 跟踪信息。 |
|
flush-strategy |
在发生错误时如何冲刷池。有效值是: |
|
idle-timeout-minutes |
连接在关闭前可以空闲的最长时间(分钟)。实际的最长时间也取决于 |
|
initial-pool-size |
池应该保持的连接的初始数量。 |
|
interleaving |
指定是否对 XA 连接启用 interleaving。 |
|
jndi-name |
连接工厂的 JNDI 名。 |
|
max-pool-size |
池里最大的连接数。在每个子池里创建的连接都不能超过这个值。 |
|
mcp |
|
|
min-pool-size |
一个池的最少连接数量。 |
|
no-recovery |
指定连接池是否应该从恢复中排除。 |
|
no-tx-separate-pool |
Oracle 不希望 XA 连接既在 JTA 事务内部又在外部使用。要绕过这个问题,您可以为不同的上下文创建独立的子池。 |
|
pad-xid |
指定 Xid 是否需要被填充。 |
|
pool-fair |
指定池是否应该公平使用。 |
|
pool-prefill |
指定池是否应该被预先填充。修改这个值需要重启服务器。 |
|
pool-use-strict-min |
指定 |
|
recovery-password |
恢复所使用的密码。 |
|
recovery-plugin-class-name |
恢复插件实现的完全限定类名。 |
|
recovery-plugin-properties |
恢复插件的属性。 |
|
recovery-security-domain |
用于恢复的安全域。 |
|
recovery-username |
用于恢复的用户名。 |
|
same-rm-override |
无条件地设置 |
|
security-application |
表示应用程序提供的参数(如 |
|
security-domain |
定义用来区分池中的连接的 |
|
security-domain-and-application |
表示应用程序提供的参数,如 |
|
sharable |
启用共享连接功能,这将允许在支持的情况下启用 lazy association 功能。 |
|
tracking |
指定 IronJacamar 是否应该跟踪跨事务边界的连接句柄。 |
|
use-ccm |
允许使用一个缓存的连接管理器。 |
|
use-fast-fail |
如果为 |
|
use-java-context |
把它设置为 |
|
validate-on-match |
指定当一个连接工厂试图匹配一个受管的连接时,是否需要进行连接验证。这通常只适用于使用后台验证。 |
|
wrap-xa-resource |
指定 |
|
xa-resource-timeout |
这个值(以秒为单位)传递给 |
资源适配器模式可以在 EAP_HOME/docs/schema/wildfly-resource-adapters_4_0.xsd 里找到。
A.20. 资源适配器统计
表 A.34. 资源适配器统计
| 名称 | 描述 |
|---|---|
|
ActiveCount |
活动连接的数量。每个连接要么被应用程序使用,要么位于池里可用。 |
|
AvailableCount |
池里有效连接的数量。 |
|
AverageBlockingTime |
阻塞获取池的排斥锁所消耗的平均时间。这个值的单位是毫秒。 |
|
AverageCreationTime |
创建连接花费的平均时间(单位为毫秒)。 |
|
CreatedCount |
创建的连接数量。 |
|
DestroyedCount |
销毁的连接数量。 |
|
InUseCount |
当前使用的连接数量。 |
|
MaxCreationTime |
创建连接花费的最长时间(单位为毫秒)。 |
|
MaxUsedCount |
使用的连接的最大数量。 |
|
MaxWaitCount |
同一时间等待连接的请求的最大数量。 |
|
MaxWaitTime |
等待池里排他锁所消耗的最长时间。 |
|
TimedOut |
超时连接的数量。 |
|
TotalBlockingTime |
等待池的排他锁所消耗的总共时间。这个值的单位是毫秒。 |
|
TotalCreationTime |
创建连接花费的总共时间(单位为毫秒)。 |
|
WaitCount |
必须等待连接的请求的数量。 |
A.21. Undertow 子系统属性
表 A.35. undertow 属性
| 属性 | Default | 描述 |
|---|---|---|
|
default-security-domain |
other |
web 部署使用的默认安全域。 |
|
default-server |
default-server |
用于部署的默认服务器。 |
|
default-servlet-container |
default |
用于部署的默认 servlet 容器。 |
|
default-virtual-host |
default-host |
用于部署的默认虚拟主机。 |
|
instance-id |
${jboss.node.name} |
集群实例 ID。 |
|
statistics-enabled |
false |
是否启用统计数据 |
缓冲缓存属性
表 A.36. buffer-cache 属性
| 属性 | Default | 描述 |
|---|---|---|
|
buffer-size |
1024 |
缓冲的大小。更小的缓冲允许更有效地利用空间。 |
|
buffers-per-region |
1024 |
每个区的缓冲数量。 |
|
max-regions |
10 |
区的最大数量。它控制可用于缓存的最大内存数量。 |
Servlet 容器属性
Servlet 容器组件具有下列结构:
servlet-container 属性
表 A.37. servlet-container 属性
| 属性 | Default | 描述 |
|---|---|---|
|
allow-non-standard-wrappers |
false |
是否可以使用没有扩展标准 Wrapper 类的请求和资源 Wrapper。 |
|
default-buffer-cache |
default |
用于缓存静态资源的缓冲缓存。 |
|
default-encoding |
用于所有部署的应用程序的默认编码。 | |
|
default-session-timeout |
30 |
用于容器里部署的所有应用程序的默认会话超时时间(以分钟为单位)。 |
|
directory-listing |
是否应该为默认的 servlet 启用目录列表。 | |
|
disable-caching-for-secured-pages |
true |
是否设置头部来为安全页面禁用缓存。禁用它可能导致安全问题,因为敏感页面可能会被中介缓存。 |
|
eager-filter-initialization |
false |
是否在部署启动,而不是第一次被请求时调用过滤器的 init()。 |
|
ignore-flush |
false |
忽略 Servlet 输出流上的冲刷。多数情况下这些操作只会影响到性能。 |
|
max-sessions |
在同一时刻可以处于活动状态的最大会话数量。 | |
|
proactive-authentication |
false |
是否使用主动验证。如果为 |
|
session-id-length |
30 |
生成的会话 ID 的长度。越长的会话 ID 越安全。 |
|
stack-trace-on-error |
local-only |
在出现错误时是否应该生成带有跟踪栈信息的错误页面。其值为 all、none 和 local-only。 |
|
use-listener-encoding |
false |
使用 Listener 上定义的编码 |
mime-mapping 属性
表 A.38. mime-mapping 属性
| 属性 | Default | 描述 |
|---|---|---|
|
value |
这个映射的 MIME 类型。 |
welcome-file 属性
定义欢迎文件,它没有选项。
crawler-session-management 属性
为 crawler bot 配置特殊会话处理。
当使用管理 CLI 管理 crawler-session-management 元素时,它在 servlet-container 元素的 settings 中可用。例如:
/subsystem=undertow/servlet-container=default/setting=crawler-session-management:add /subsystem=undertow/servlet-container=default/setting=crawler-session-management:read-resource
表 A.39. crawler-session-management 属性
| 属性 | Default | 描述 |
|---|---|---|
|
session-timeout |
crawler 所拥有会话的超时时间(以秒为单位)。 | |
|
user-agents |
用来匹配一个 crawler 的用户代理的正则表达式。 |
jsp 属性
当使用管理 CLI 管理 jsp 元素时,它在 servlet-container 元素的 settings 中可用。例如:
/subsystem=undertow/servlet-container=default/setting=jsp:read-resource
表 A.40. jsp 属性
| 属性 | Default | 描述 |
|---|---|---|
|
check-interval |
0 |
用后台线程检查 JSP 更新的间隔。 |
|
development |
false |
启用开放模式,它可以在运行时重载 JSP。 |
|
disabled |
false |
启用 JSP 容器。 |
|
display-source-fragment |
true |
当发生运行错误时,试图显示相应的 JSP 源码片段。 |
|
dump-smap |
false |
写入 SMAP 数据至文件。 |
|
error-on-use-bean-invalid-class-attribute |
false |
在 useBean 使用了错误的类时显示错误。 |
|
generate-strings-as-char-arrays |
false |
将字符串常量生成为字符数组。 |
|
java-encoding |
UTF8 |
生成用于 Java 源码的编码。 |
|
keep-generated |
true |
保持生成的 Servlet。 |
|
mapped-file |
true |
映射至 JSP 源码。 |
|
modification-test-interval |
4 |
两次更新测试间的最小时间间隔(秒)。 |
|
optimize-scriptlets |
false |
是否应该优化 JSP scriptlets 来删除字符串连接。 |
|
recompile-on-fail |
false |
在每次请求时重试失败的 JSP 编译。 |
|
scratch-dir |
指定不同的工作目录。 | |
|
smap |
true |
启用 SMAP。 |
|
source-vm |
1.8 |
用于编译的源虚拟机级别。 |
|
tag-pooling |
true |
启用标签池。 |
|
target-vm |
1.8 |
用于编译的目标虚拟机级别。 |
|
trim-spaces |
false |
从生成的 Servlet 里删除空格。 |
|
x-powered-by |
true |
启用 x-powered-by 里的 JSP 引擎的广告。 |
persistent-sessions 属性
当使用管理 CLI 管理 persistent-sessions 元素时,它在 servlet-container 元素的 settings 中可用。例如:
/subsystem=undertow/servlet-container=default/setting=persistent-sessions:add /subsystem=undertow/servlet-container=default/setting=persistent-sessions:read-resource
表 A.41. persistent-sessions 属性
| 属性 | Default | 描述 |
|---|---|---|
|
路径 |
持久性会话数据目录的路径。如果它为 null,会话将保存在内存里。 | |
|
relative-to |
这个目录相对的路径 |
session-cookie Attributes
当使用管理 CLI 管理 session-cookie 元素时,它在 servlet-container 元素的 settings 中可用。例如:
/subsystem=undertow/servlet-container=default/setting=session-cookie:add /subsystem=undertow/servlet-container=default/setting=session-cookie:read-resource
表 A.42. session-cookie Attributes
| 属性 | Default | 描述 |
|---|---|---|
|
comment |
Cookie comment. | |
|
domain |
Cookie 域。 | |
|
http-only |
cookie 是否只是 http。 | |
|
max-age |
cookie 最长有效时间。 | |
|
name |
cookie 的名称 | |
|
secure |
cookie 是否安全。 |
websockets 属性
当使用管理 CLI 管理 websockets 元素时,它在 servlet-container 元素的 settings 中可用。例如:
/subsystem=undertow/servlet-container=default/setting=websockets:read-resource
表 A.43. websockets 属性
| 属性 | Default | 描述 |
|---|---|---|
|
buffer-pool |
default |
用于 websocket 部署的缓冲池。 |
|
dispatch-to-worker |
true |
回调是否应该被分发至 worker 线程。如果为 |
|
worker |
default |
用于 websocket 部署的 worker |
过滤器属性
custom-filter 过滤器
表 A.44. custom-filter 属性
| 属性 | Default | 描述 |
|---|---|---|
|
class-name |
HttpHandler 的类名。 | |
|
module |
可以从中加载类的模块的名称。 | |
|
parameters |
过滤器参数 |
error-page 过滤器
错误页面
表 A.45. error-page 属性
| 属性 | Default | 描述 |
|---|---|---|
|
code |
错误页代码。 | |
|
路径 |
错误页路径。 |
expression-filter 过滤器
解析 Undertow 表达式语言的过滤器。
表 A.46. expression-filter 过滤器
| 属性 | Default | 描述 |
|---|---|---|
|
expression |
定义过滤器的表达式。 | |
|
module |
加载过滤器定义所使用的模块。 |
gzip 过滤器
定义 gzip 过滤器,它没有属性。
mod-cluster 过滤器
mod-cluster 过滤器组件具有下列结构:
表 A.47. mod-cluster 属性
| 属性 | Default | 描述 |
|---|---|---|
|
advertise-frequency |
10000 |
mod-cluster 在网络里广告自己的频率(以毫秒为单位)。 |
|
advertise-path |
/ |
注册 mod_cluster 的路径。 |
|
advertise-protocol |
http |
使用中的协议。 |
|
advertise-socket-binding |
用来广告的多播组。 | |
|
broken-node-timeout |
60000 |
在断开的节点从表里删除前必须等待的时间。 |
|
cached-connections-per-thread |
5 |
将无限期保持活动的连接数量。 |
|
connection-idle-timeout |
60 |
连接在关闭前可以处于空闲状态的时间。如果池大小降至配置的最小值(由 |
|
connections-per-thread |
10 |
每个 IO 线程将保持在后台服务器的连接数量。 |
|
enable-http2 |
false |
负载平衡器是否应该试图升级后台连接至 HTTP2。如果不支持 HTTP2,将使用 HTTP 或 HTTPS。 |
|
health-check-interval |
10000 |
ping 后台节点进行“健康检查”的频率。 |
|
management-access-predicate |
predicate 应用于转入请求,它确定是否可以执行 mod_cluster 管理命令。它在限制对源自 | |
|
management-socket-binding |
mod_cluster 管理端口的套接字绑定。在使用 mod_cluster 时应该定义两个 HTTP Listener,一个共用的处理请求,另外一个绑定到内部网络来处理 mod_cluster 命令。这套接字绑定应该对应内部的 Listener,不应该公共访问。 | |
|
max-request-time |
-1 |
对后台节点的请求在被终止前可消耗的最长时间。 |
|
request-queue-size |
10 |
如果连接池已满,在请求被以 503 错误拒绝前可以排队的请求数量。 |
|
security-key |
用于 mod_cluster 组的安全密钥。所有的成员都必须使用相同的安全密钥。 | |
|
security-realm |
提供 SSL 配置的安全域。 | |
|
use-alias |
false |
是否执行别名检查。 |
|
worker |
default |
用于发送广告通知的 XNIO 工作节点。 |
表 A.48. balancer 属性
| 属性 | Default | 描述 |
|---|---|---|
|
max-attempts |
尝试发送请求至后台服务器的次数。 | |
|
sticky-session |
是否启用粘性会话。 | |
|
sticky-session-cookie |
会话 Cookie 的名称。 | |
|
sticky-session-force |
如果为 | |
|
sticky-session-path |
粘性会话 Cookie 的路径。 | |
|
sticky-session-remove |
如果请求没有路由至正确的主机则删除会话 Cookie。 | |
|
wait-worker |
等待可用工作节点的秒数。 |
load-balancing-group 属性
定义没有选项的负载平衡组。
表 A.49. node 属性
| 属性 | Default | 描述 |
|---|---|---|
|
aliases |
节点别名。 | |
|
cache-connections |
无限期保持活动的连接数量。 | |
|
elected |
elected 的数量。 | |
|
flush-packets |
是否立即冲刷接收到的数据。 | |
|
load |
这个节点的当前负载。 | |
|
load-balancing-group |
这个节点所属的负载均衡组。 | |
|
max-connections |
每个 IO 线程最大的连接数量。 | |
|
open-connections |
当前打开的连接的数量。 | |
|
ping |
节点 ping。 | |
|
queue-new-requests |
如果接收到请求但没有立即可用的工作节点,是否应该进行排队。 | |
|
read |
从节点读的字节数。 | |
|
request-queue-size |
请求队列的大小。 | |
|
status |
这个节点的当前状态。 | |
|
timeout |
请求超时。 | |
|
ttl |
如果连接数量大于 | |
|
uri |
负载平衡器用来连接节点的 URI。 | |
|
written |
传输至节点的字节数。 |
表 A.50. context 属性
| 属性 | Default | 描述 |
|---|---|---|
|
requests |
对这个上下文的请求数量。 | |
|
status |
这个上下文的状态。 |
request-limit 过滤器
表 A.51. request-limit 属性
| 属性 | Default | 描述 |
|---|---|---|
|
max-concurrent-requests |
并发请求的最大数量。 | |
|
queue-size |
请求被拒绝前排队的请求数量。 |
response-header 过滤器
response-header 过滤器允许您添加自定义头部信息。
表 A.52. response-header 属性
| 属性 | Default | 描述 |
|---|---|---|
|
header-name |
头名称。 | |
|
header-value |
头的值。 |
rewrite 过滤器
表 A.53. rewrite 属性
| 属性 | Default | 描述 |
|---|---|---|
|
redirect |
false |
是否重定向而不是重写。 |
|
target |
定义目标的表达式。如果您重定向至固定的目标,请为值加上单引号。 |
Handler 属性
file 属性
表 A.54. file 属性
| 属性 | Default | 描述 |
|---|---|---|
|
cache-buffer-size |
1024 |
缓冲的大小。 |
|
cache-buffers |
1024 |
缓冲的数量。 |
|
case-sensitive |
true |
是否使用区分大小写的文件处理方式。请注意,只有在底层文件系统不区分大小写时,把这个值设置为 |
|
directory-listing |
false |
是否启用列出目录功能。 |
|
follow-symlink |
false |
启用下面的符号链接。 |
|
路径 |
文件处理程序将充当资源所在的文件系统的路径。 | |
|
safe-symlink-paths |
对于符号链接目标安全的路径。 |
对静态资源使用 WebDAV
之前的 JBoss EAP 版本允许将 WebDAV 和 web 子系统一起使用(WebdavServlet)来容纳静态资源,并启用额外的 HTTP 方法以访问和操作这些文件。在 JBoss EAP 7 里,undertow 子系统提供了通过文件处理程序服务静态文件的机制。但 undertow 子系统不支持 WebDAV。如果您想在 JBoss EAP 7 里使用 WebDAV,可以编写自定义的 WebDAV servlet。
reverse-proxy 属性
reverse-proxy 处理程序组件具有下列结构:
表 A.55. reverse-proxy 属性
| 属性 | Default | 描述 |
|---|---|---|
|
cached-connections-per-thread |
5 |
将无限期保持活动的连接数量。 |
|
connection-idle-timeout |
60 |
连接在关闭前可以处于空闲状态的时间。如果池大小降至配置的最小值(如 cached-connections-per-thread),连接将不会超时。 |
|
connections-per-thread |
10 |
每个 IO 线程将保持在后台服务器的连接数量。 |
|
max-request-time |
-1 |
代理请求被终止前可以保持活动的最长时间。默认为无限制。 |
|
problem-server-retry |
30 |
在试图重新连接下线的服务器前等待的时间(秒)。 |
|
request-queue-size |
10 |
如果连接池已满,在请求被以 503 错误拒绝前可以排队的请求数量。 |
|
session-cookie-names |
JSESSIONID |
逗号分开的会话 Cookie 名称列表。通常它仅为 JSESSIONID。 |
表 A.56. host 属性
| 属性 | Default | 描述 |
|---|---|---|
|
instance-id |
用来启用粘性会话的实例 ID 或 JVM 路由。 | |
|
outbound-socket-binding |
这个主机的转出套接字绑定。 | |
|
路径 |
/ |
如果主机使用非根资源的可选路径。 |
|
scheme |
http |
使用的 scheme 类型。 |
|
security-realm |
为到主机的连接提供 SSL 配置的安全区。 |
服务器属性
这服务器组件具有下列结构:
server 属性
表 A.57. server 属性
| 属性 | Default | 描述 |
|---|---|---|
|
default-host |
default-host |
服务器默认的虚拟主机。 |
|
servlet-container |
default |
服务器默认的 Servlet 容器。 |
http-listener 属性
表 A.58. http-listener 属性
| 属性 | Default | 描述 |
|---|---|---|
|
allow-encoded-slash |
false |
如果请求中包括经过编码的字符(如 |
|
allow-equals-in-cookie-value |
false |
是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。 |
|
always-set-keep-alive |
true |
是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。 |
|
buffer-pipelined-data |
true |
是否应该缓冲管线请求。 |
|
buffer-pool |
default |
Listener 的缓冲池。 |
|
certificate-forwarding |
false |
是否启用证书转发。如果启用,listener 将从 |
|
decode-url |
true |
解析器是否用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。 |
|
disallowed-methods |
["TRACE"] |
逗号分开的不允许的 HTTP 方法列表。 |
|
enable-http2 |
false |
是否为这个 Listener 启用 HTTP2 支持。 |
|
enabled |
true |
是否启用 listener。 |
|
http2-enable-push |
true |
是否为这个连接启用服务器推送。 |
|
http2-header-table-size |
用于 HPACK 压缩的头部表的大小(字节)。用于压缩的内存数量将为每个连接进行分配。越大的值使用越多的内存,但可能提供越好的压缩性能。 | |
|
http2-initial-window-size |
控制客户发送数据至服务器的速度的流控制窗口的大小。 | |
|
http2-max-concurrent-streams |
在单个连接上任何时刻都保持活动的 HTTP/2 流的最大数量。 | |
|
http2-max-frame-size |
最大的 HTTP/2 帧大小。 | |
|
http2-max-header-list-size |
服务准备接受的请求头部的最大尺寸。 | |
|
max-buffered-request-size |
16384 |
缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。 |
|
max-connections |
并发连接的最大数量 | |
|
max-cookies |
200 |
将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。 |
|
max-header-size |
1048576 |
HTTP 请求头部的最大尺寸(字节)。 |
|
max-headers |
200 |
将被解析的头部的最大数量。这被用于保护 Hash 漏洞。 |
|
max-parameters |
1000 |
将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。 |
|
max-post-size |
10485760 |
将被接受的 POST 数据的最大尺寸。 |
|
no-request-timeout |
在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。 | |
|
proxy-address-forwarding |
false |
是否启用 x-forwarded-host 和类似的头部并设置远程的 IP 地址和主机名 |
|
read-timeout |
配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。 | |
|
receive-buffer |
接收缓冲大小。 | |
|
record-request-start-time |
false |
是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。 |
|
redirect-socket |
如果这个 Listener 支持非 SSL 请求,而请求通过要求 SSL 的传输接收的,Undertow 将自动重定向请求至这里指定的套接字绑定端口。 | |
|
request-parse-timeout |
解析请求所花费的最长时间(毫秒)。 | |
|
resolve-peer-address |
false |
启用主机 DNS 查找 |
|
send-buffer |
发送缓冲大小。 | |
|
socket-binding |
这个 Listener 的套接字绑定。 | |
|
tcp-backlog |
用指定的 backlog 配置服务器。 | |
|
tcp-keep-alive |
配置频道以依赖于实现的方式发送 TCP keep-alive 消息。 | |
|
url-charset |
UTF-8 |
URL 字符集。 |
|
worker |
default |
listener 的 XNIO 工作节点。 |
|
write-timeout |
配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。 |
以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:
表 A.59. http-listener 度量属性
| 属性 | Default | 描述 |
|---|---|---|
|
bytes-received |
这个 Listener 已接收了字节数量。 | |
|
bytes-sent |
这个 Listener 已发送出去的字节数量。 | |
|
error-count |
这个 Listener 已发送的 500 响应的数量。 | |
|
max-processing-time |
这个 Listener 上处理请求的最长时间。 | |
|
processing-time |
这个 Listener 处理所有请求的总共时间。 | |
|
request-count |
这个 Listener 已服务的请求的数量。 |
https-listener 属性
表 A.60. https-listener 属性
| 属性 | Default | 描述 |
|---|---|---|
|
allow-encoded-slash |
false |
如果请求中包括经过编码的字符(如 |
|
allow-equals-in-cookie-value |
false |
是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。 |
|
always-set-keep-alive |
true |
是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。 |
|
buffer-pipelined-data |
true |
是否应该缓冲管线请求。 |
|
buffer-pool |
default |
Listener 的缓冲池。 |
|
decode-url |
true |
解析器是否用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。 |
|
disallowed-methods |
["TRACE"] |
逗号分开的不允许的 HTTP 方法列表。 |
|
enable-http2 |
false |
为这个 Listener 启用 HTTP2 支持。 |
|
enable-spdy |
false |
为这个 Listener 启用 SPDY 支持。 |
|
enabled |
true |
是否启用 listener。 |
|
enabled-cipher-suites |
配置已启用 SSL 的密码。 | |
|
enabled-protocols |
配置 SSL 协议。 | |
|
http2-enable-push |
true |
是否为这个连接启用服务器推送。 |
|
http2-header-table-size |
用于 HPACK 压缩的头部表的大小(字节)。用于压缩的内存数量将为每个连接进行分配。越大的值使用越多的内存,但可能提供越好的压缩性能。 | |
|
http2-initial-window-size |
控制客户发送数据至服务器的速度的流控制窗口的大小。 | |
|
http2-max-concurrent-streams |
在单个连接上任何时刻都保持活动的 HTTP/2 流的最大数量。 | |
|
http2-max-frame-size |
最大的 HTTP/2 帧大小。 | |
|
http2-max-header-list-size |
服务准备接受的请求头部的最大尺寸。 | |
|
max-buffered-request-size |
16384 |
缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。 |
|
max-connections |
并发连接的最大数量 | |
|
max-cookies |
100 |
将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。 |
|
max-header-size |
1048576 |
HTTP 请求头部的最大尺寸(字节)。 |
|
max-headers |
200 |
将被解析的头部的最大数量。这被用于保护 Hash 漏洞。 |
|
max-parameters |
1000 |
将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。 |
|
max-post-size |
10485760 |
将被接受的 POST 数据的最大尺寸。 |
|
no-request-timeout |
在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。 | |
|
read-timeout |
配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。 | |
|
receive-buffer |
接收缓冲大小。 | |
|
record-request-start-time |
false |
是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。 |
|
request-parse-timeout |
解析请求所花费的最长时间(毫秒)。 | |
|
resolve-peer-address |
false |
启用主机 DNS 查找 |
|
security-realm |
listener 的安全区。 | |
|
send-buffer |
发送缓冲大小。 | |
|
socket-binding |
Listener 的套接字绑定。 | |
|
ssl-session-cache-size |
活动的 SSL 会话的最大数量。 | |
|
ssl-session-timeout |
SSL 会话的超时时间(秒)。 | |
|
tcp-backlog |
用指定的 backlog 配置服务器。 | |
|
tcp-keep-alive |
配置频道以依赖于实现的方式发送 TCP keep-alive 消息。 | |
|
url-charset |
UTF-8 |
URL 字符集。 |
|
verify-client |
NOT_REQUESTED |
用于 SSL 频道的 SSL 客户验证模式。 |
|
worker |
default |
listener 的 XNIO 工作节点。 |
|
write-timeout |
配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。 |
以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:
表 A.61. https-listener 度量属性
| 属性 | Default | 描述 |
|---|---|---|
|
bytes-received |
这个 Listener 已接收了字节数量。 | |
|
bytes-sent |
这个 Listener 已发送出去的字节数量。 | |
|
error-count |
这个 Listener 已发送的 500 响应的数量。 | |
|
max-processing-time |
这个 Listener 上处理请求的最长时间。 | |
|
processing-time |
这个 Listener 处理所有请求的总共时间。 | |
|
request-count |
这个 Listener 已服务的请求的数量。 |
ajp-listener 属性
表 A.62. ajp-listener 属性
| 属性 | Default | 描述 |
|---|---|---|
|
allow-encoded-slash |
false |
如果请求中包括经过编码的字符(如 |
|
allow-equals-in-cookie-value |
false |
是否允许不加引号的 Cookie 值里出现非转义的等号字符。不加引号的 Cookie 值可能没有包含等号,如果有等号,值将到等号为止,后面的部分将被忽略。 |
|
always-set-keep-alive |
true |
是否在响应里加入 Connection: keep-alive 头部,即使规格并没有严格要求它。 |
|
buffer-pipelined-data |
true |
是否缓冲管线请求(pipelined request)。 |
|
buffer-pool |
default |
AJP Listener 的缓冲池。 |
|
decode-url |
true |
如果为 true,解析器将用所选的字符编码(默认是 UTF-8)解码 URL 和查询参数。如果为 false,则不会进行解码。这将允许之后的处理程序将它们解码至所要的字符集。 |
|
disallowed-methods |
["TRACE"] |
逗号分开的不允许的 HTTP 方法列表。 |
|
enabled |
true |
是否启用 listener。 |
|
max-ajp-packet-size |
支持的 AJP 数据包的最大尺寸。如果它被修改,在负载平衡器和后台服务器上都应增大。 | |
|
max-buffered-request-size |
16384 |
缓冲请求的最大尺寸(字节)。请求通常不会被缓冲,最常见的情形是为 POST 请求执行 SSL 重新协商时,必须缓冲完整的 post 数据来执行重新协商。 |
|
max-connections |
并发连接的最大数量 | |
|
max-cookies |
200 |
将被解析的 Cookie 的最大数量。这被用于保护 Hash 漏洞。 |
|
max-header-size |
1048576 |
HTTP 请求头部的最大尺寸(字节)。 |
|
max-headers |
200 |
将被解析的头部的最大数量。这被用于保护 Hash 漏洞。 |
|
max-parameters |
100 |
将被解析的参数的最大数量。这被用于保护 Hash 漏洞。它适用于两个查询参数和 POST 数据,但不是累积的。例如,您可以有最多参数 * 2 的总共参数。 |
|
max-post-size |
10485760 |
将被接受的 POST 数据的最大尺寸 |
|
no-request-timeout |
在连接被容器关闭之前可以处于空闲状态的时间(毫秒)。 | |
|
read-timeout |
配置套接字读超时(毫秒)。如果超过给定的时间而没有成功读取,套接字的下一次读取将抛出 {@link ReadTimeoutException}。 | |
|
receive-buffer |
接收缓冲大小。 | |
|
record-request-start-time |
false |
是否记录请求的开始时间,允许记录请求时间。这对性能的影响虽小但却是明显的。 |
|
redirect-socket |
如果这个 Listener 支持非 SSL 请求,而请求通过要求 SSL 的传输接收的,Undertow 将自动重定向请求至这里指定的套接字绑定端口。 | |
|
request-parse-timeout |
解析请求所花费的最长时间(毫秒)。 | |
|
resolve-peer-address |
false |
启用主机 DNS 查找 |
|
scheme |
listener 的模式,它可以是 HTTP 或 HTTPS。在默认情况下,这个模式将从转入的 AJP 请求里获取。 | |
|
send-buffer |
发送缓冲大小。 | |
|
socket-binding |
AJP Listener 的套接字绑定。 | |
|
tcp-backlog |
用指定的 backlog 配置服务器。 | |
|
tcp-keep-alive |
配置频道以依赖于实现的方式发送 TCP keep-alive 消息。 | |
|
url-charset |
UTF-8 |
URL 字符集。 |
|
worker |
default |
listener 的 XNIO 工作节点。 |
|
write-timeout |
配置套接字写超时(毫秒)。如果超过给定的时间而没有成功写入,套接字的下一次写入将抛出 {@link WriteTimeoutException}。 |
以下属性是只读的,并只在 undertow 子系统启用了统计功能时有效:
表 A.63. ajp-listener 度量属性
| 属性 | Default | 描述 |
|---|---|---|
|
bytes-received |
这个 Listener 已接收了字节数量。 | |
|
bytes-sent |
这个 Listener 已发送出去的字节数量。 | |
|
error-count |
这个 Listener 已发送的 500 响应的数量。 | |
|
max-processing-time |
这个 Listener 上处理请求的最长时间。 | |
|
processing-time |
这个 Listener 处理所有请求的总共时间。 | |
|
request-count |
这个 Listener 已服务的请求的数量。 |
host 属性
表 A.64. host 属性
| 属性 | Default | 描述 |
|---|---|---|
|
alias |
用逗号分开的主机列表。 | |
|
default-response-code |
404 |
如果设置,这将是在请求的上下文不存在时送回的响应代码。 |
|
default-web-module |
ROOT.war |
默认的 Web 模块。 |
|
disable-console-redirect |
false |
如果为 true,不会为这个主机启用控制台重定向。 |
filter-ref 属性
表 A.65. filter-ref 属性
| 属性 | Default | 描述 |
|---|---|---|
|
predicate |
Predicate 提供根据交换进行 true/false 决定的简单途径。许多处理程序都要求有条件地进行应用,而 Predicate 则提供了指定条件的通用途径。 | |
|
priority |
1 |
定义过滤器顺序,它应该为 1 或更大的数字。较大的数字会比相同上下文里的内容较早地包含在处理程序链里。 |
access-log 属性
当使用管理 CLI 管理 access-log 元素时,它在 host 元素的 settings 中可用。例如:
/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add /subsystem=undertow/server=default-server/host=default-host/setting=access-log:read-resource
表 A.66. access-log 属性
| 属性 | Default | 描述 |
|---|---|---|
|
directory |
${jboss.server.log.dir} |
保存日志的目录。 |
|
extended |
false |
日志是否使用扩展的日志文件格式。 |
|
pattern |
common |
访问日志模式。 |
|
predicate |
确定是否应该记录请求的 Predicate。 | |
|
prefix |
access_log |
日志文件名称的前缀。 |
|
relative-to |
这个目录相对的路径 | |
|
rotate |
true |
是否每天轮换访问日志。 |
|
suffix |
.log |
日志文件名称的后缀。 |
|
use-server-log |
false |
日志是否应该写入到服务器日志,而不是单独的文件。 |
|
worker |
default |
用于日志的工作节点的名称。 |
single-sign-on 属性
当使用管理 CLI 管理 single-sign-on 元素时,它在 host 元素的 settings 中可用。例如:
/subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:add /subsystem=undertow/server=default-server/host=default-host/setting=single-sign-on:read-resource
虽然从应用程序的角度来看,分布式的单点登录和之前的 JBoss EAP 里的版本没什么不同,在 JBoss EAP 7 里,验证信息的缓存和分布的处理是不同的。对于 JBoss EAP 7,当运行 HA 配置集时,每个主机默认都有自己的 infinispan 缓存,用以保存相关的会话的 SSO Cookie 信息。这个缓存基于 Web 缓存容器的默认缓存。JBoss EAP 也将处理所有主机的单独缓存之间的信息传播。
表 A.67. single-sign-on 属性
| 属性 | Default | 描述 |
|---|---|---|
|
cookie-name |
JSESSIONIDSSO |
cookie 的名称 |
|
domain |
将被使用的 Cookie 域。 | |
|
http-only |
false |
设置 Cookie httpOnly 属性。 |
|
路径 |
/ |
Cookie 路径。 |
|
secure |
false |
设置 Cookie 安全属性。 |
location 属性
表 A.68. location 属性
| 属性 | Default | 描述 |
|---|---|---|
|
handler |
这个位置的默认处理程序。 |
A.22. HTTP 方法的默认行为
和之前的 JBoss EAP 版本里的 web 子系统相比,JBoss EAP 7.0 里的 undertow 子系统具有不同的 HTTP 方法的默认行为。下表列出了 JBoss EAP 7.0 里的默认行为。
表 A.69. HTTP 方法的默认行为
| HTTP 方法 | JSP | Servlet | 静态的 HTML |
|---|---|---|---|
|
GET |
OK |
取决于它的实现 |
OK |
|
POST |
OK |
取决于它的实现 |
NOT_ALLOWED |
|
HEAD |
OK |
取决于它的实现 |
OK |
|
PUT |
NOT_ALLOWED |
取决于它的实现 |
NOT_ALLOWED |
|
TRACE |
NOT_ALLOWED |
NOT_ALLOWED |
NOT_ALLOWED |
|
DELETE |
NOT_ALLOWED |
取决于它的实现 |
NOT_ALLOWED |
|
OPTIONS |
NOT_ALLOWED |
取决于它的实现 |
OK |
A.23. IO 子系统属性
表 A.70. worker 属性
| 属性 | Default | 描述 |
|---|---|---|
|
io-threads |
要使用的 IO 线程的数量 | |
|
stack-size |
0 |
栈的大小 |
|
task-keepalive |
60 |
任务的 Keep-alive 时间 |
|
task-max-threads |
任务的最大线程数量 |
表 A.71. buffer-pool 属性
| 属性 | Default | 描述 |
|---|---|---|
|
buffer-size |
缓冲的大小 | |
|
buffers-per-slice |
每个 slice 有多少个缓冲 | |
|
direct-buffers |
缓冲池是否使用直接缓冲 |
A.24. Remoting 子系统属性
表 A.72. remoting 属性
| 属性 | Default | 描述 |
|---|---|---|
|
worker-read-threads |
1 |
为远程工作节点创建的读线程数量 |
|
worker-task-core-threads |
4 |
用于远程工作节点任务线程池的核心线程的数量。 |
|
worker-task-keepalive |
60 |
保持非核心远程工作节点任务线程活动的时间(毫秒)。 |
|
worker-task-limit |
16384 |
在拒绝前允许远程工作节点任务的最大数量。 |
|
worker-task-max-threads |
16 |
用于远程工作节点任务线程池的线程的最大数量。 |
|
worker-write-threads |
1 |
为远程工作节点创建的写线程数量 |
remoting 元素的上述属性已被启用。现在应该配置这些属性使用 io 子系统。
表 A.73. 端点属性
| 属性 | Default | 描述 |
|---|---|---|
|
auth-realm |
如果没有指定验证 CallbackHandler 时使用的验证区。 | |
|
authentication-retries |
3 |
指定关闭连接前允许客户重试验证的次数。 |
|
authorize-id |
SASL 验证 ID。它被用作如果没有指定验证 CallbackHandler 时使用的验证用户名,所选的 SASL 机制要求用户名。 | |
|
buffer-region-size |
分配的缓冲区的大小。 | |
|
heartbeat-interval |
2147483647 |
用于连接 Heartbeat 的间隔(毫秒)。如果在这段时间内,这个连接在转出方向是空闲的,Ping 消息将被发送,这将触发一个相应的回复信息。 |
|
max-inbound-channels |
40 |
频道上并发的转入消息的最大数量。 |
|
max-inbound-message-size |
9223372036854775807 |
允许的转入消息的最大尺寸。超过这个尺寸的消息在读取端和写入端都将抛出异常。 |
|
max-inbound-messages |
80 |
连接支持的转入频道的最大数量。 |
|
max-outbound-channels |
40 |
频道上并发的转出消息的最大数量。 |
|
max-outbound-message-size |
9223372036854775807 |
发送的转出消息的最大尺寸。大于这个值的消息不会被传送,试图这样做会在写入端抛出异常。 |
|
max-outbound-messages |
65535 |
连接支持的转出频道的最大数量。 |
|
receive-buffer-size |
8192 |
这个端点将通过连接接受的最大缓冲的尺寸。 |
|
receive-window-size |
131072 |
连接频道的接收方向的最大窗口大小(字节)。 |
|
sasl-protocol |
remoting |
创建 SaslServer 或 SaslClient 的地方,可用来覆盖默认指定的协议 remoting。 |
|
send-buffer-size |
8192 |
这个端点将通过连接传输的最大缓冲的尺寸。 |
|
server-name |
连接的服务器端在初始 greeting 时将它的名称传给客户,默认这个名称将从连接的本地地址自动发现,或者它可以用这个属性进行覆盖。 | |
|
transmit-window-size |
131072 |
连接频道的传输方向的最大窗口大小(字节)。 |
|
worker |
default |
要使用的工作节点 |
当使用管理 CLI 来更新 endpoint 元素时,它位于 remoting 元素下的 configuration,例如:/subsystem=remoting/configuration=endpoint/。
连接器属性
连接器组件具有下列结构:
表 A.74. 连接器属性
| 属性 | Default | 描述 |
|---|---|---|
|
authentication-provider |
authentication-provider 元素包含用于转入连接的验证提供者的名称。 | |
|
sasl-protocol |
remote |
传入用于验证的 SASL 机制的协议。 |
|
security-realm |
用于这个连接器的验证的相关安全区。 | |
|
server-name |
在初始消息交换里发送的、用于基于 SASL 验证的服务器名称。 | |
|
socket-binding |
套接字绑定附属的名称。 |
表 A.75. property 属性
| 属性 | Default | 描述 |
|---|---|---|
|
value |
属性的值。 |
Security 属性
security 组件允许您配置连接器的安全性,但不包含直接的配置属性。它可以用嵌套组件进行配置,如 sasl。
表 A.76. sasl 属性
| 属性 | Default | 描述 |
|---|---|---|
|
include-mechanisms |
可选的嵌套 include-mechanisms 元素包含一个允许的 SASL 机制名称的白名单。这个列表里没有出现的机制将不被允许。 | |
|
qop |
可选的嵌套 qop 元素包含一个降序排列的 quality-of-protection 值的列表。 | |
|
reuse-session |
false |
可选的嵌套 reuse-session 布尔型元素指定服务器是否应该尝试重用之前验证的会话信息。这个机制可能不支持这样的重用,而其他因素也可能会阻止它。 |
|
server-auth |
false |
可选的嵌套 server-auth 布尔型元素指定服务器是否应该验证客户。不是所有的机制都支持这个设置。 |
|
strength |
可选的嵌套"strength"元素包含一个降序排列的密码强度值的列表。 |
sasl-policy 属性
sasl-policy 组件允许您指定可选的策略以缩小可用的机制集合,但它不包含直接的配置属性。它可以用嵌套组件进行配置,如 policy。
表 A.77. policy 属性
| 属性 | Default | 描述 |
|---|---|---|
|
forward-secrecy |
true |
可选的嵌套 forward-secrecy 元素包含一个布尔值,它指定是否要求实现在会话间转发秘密的机制。转发秘密意味着插入某个会话不会自动提供插入以后的会话的信息。 |
|
no-active |
true |
可选的嵌套 no-active 元素包含一个布尔值,它指定是否允许易受主动(非目录)攻击的机制。false 为允许,而 true 为拒绝。 |
|
no-anonymous |
true |
可选的嵌套 no-anonymous 元素包含一个布尔值,它指定是否允许接受匿名登录的机制。false 为允许,而 true 为拒绝。 |
|
no-dictionary |
true |
可选的嵌套 no-dictionary 元素包含一个布尔值,它指定是否允许易受被动目录攻击的机制。false 为允许,而 true 为拒绝。 |
|
no-plain-text |
true |
可选的嵌套 no-plain-text 元素包含一个布尔值,它指定是否允许易受简单被动攻击(如 PLAIN)的机制。false 为允许,而 true 为拒绝。 |
|
pass-credentials |
true |
可选的嵌套 pass-credentials 元素包含一个布尔值,它指定是否要求传递客户凭证的机制。 |
HTTP 连接器属性
http-connector 组件具有下列结构:
表 A.78. http-connector 属性
| 属性 | Default | 描述 |
|---|---|---|
|
authentication-provider |
authentication-provider 元素包含用于转入连接的验证提供者的名称。 | |
|
connector-ref |
在 | |
|
sasl-protocol |
remote |
传入用于验证的 SASL 机制的协议。 |
|
security-realm |
用于这个连接器的验证的相关安全区。 | |
|
server-name |
在初始消息交换里发送的、用于基于 SASL 验证的服务器名称。 |
出站连接属性
outbound-connection 组件具有下列结构:
表 A.79. outbound-connection 属性
| 属性 | Default | 描述 |
|---|---|---|
|
uri |
出站连接的连接 URL。 |
表 A.80. property 属性
| 属性 | Default | 描述 |
|---|---|---|
|
value |
属性的值。 |
上面的 property 属性和将在连接创建过程中使用的 XNIO 选项相关。
远程出站连接
remote-outbound-connection 组件具有下列结构:
表 A.81. remote-outbound-connection 属性
| 属性 | Default | 描述 |
|---|---|---|
|
outbound-socket-binding-ref |
用来确定连接的目的地址和端口的 | |
|
protocol |
http-remoting |
用于远程连接的协议。默认是 |
|
security-realm |
对用于获取密码和 SSL 配置的安全区的引用。 | |
|
username |
对远程服务器进行验证时使用的用户名。 |
本地出站连接属性
local-outbound-connection 组件具有下列结构:
表 A.82. local-outbound-connection 属性
| 属性 | Default | 描述 |
|---|---|---|
|
outbound-socket-binding-ref |
用来确定连接的目的地址和端口的 |
A.25. Apache HTTP Server 的 mod_cluster 指令
mod_cluster 连接器是一个基于 Apache HTTP Server 的负载平衡器。它使用一个通讯频道来转发来自 Apache HTTP Server 的请求至一系列应用服务器节点中的一个。下列指令可以用来配置 mod_cluster。
使用 ProxyPass 指令是没有必要的,因为 mod_cluster 会自动配置必须转发至 Apache HTTP Server 的 URL。
表 A.83. mod_cluster 指令
| 指令 | 描述 | 值 |
|---|---|---|
|
CreateBalancers |
定义在 Apache HTTP Server VirtualHost 里如何创建平衡器。它允许这样的指令: |
|
|
UseAlias |
点击对应服务器名称的别名。 |
|
|
LBstatusRecalTime |
负载平衡逻辑重新计算节点状态的时间间隔(秒)。 |
默认值:5 秒 |
|
WaitBeforeRemove |
已删除的节点被 HTTPD 遗忘之前的时间(秒)。 |
默认:10 秒 |
|
ProxyPassMatch/ProxyPass |
ProxyPassMatch 和 ProxyPass 都是 mod_proxy 的指令,当使用 ! (而不是 back-end URL) 时,它阻止路径里的 reverse-proxy。它可以允许 Apache HTTP Server 提供静态内容。例如, |
如果所有其他的节点都已下线,mod_cluster 逻辑里的 hot-standby 节点是所有请求都去往的最后的应急节点。这和 mod_proxy 里的 hot-standby 逻辑类似。
要配置 hot-standby 节点,请用 simple-load-provider 替换 modcluster 子系统里的 dynamic-load-provider(将 factor 设置为 0),例如:
<subsystem xmlns="urn:jboss:domain:modcluster:2.0">
<mod-cluster-config advertise-socket="modcluster" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
<simple-load-provider factor="0"/>
</mod-cluster-config>
</subsystem>在 mod_cluster-manager 控制台里,节点显示为 OK 状态和 Load: 0。
例如,有三个节点:
- Node A, Load: 10
- Node B, Load: 10
- Node C, Load: 0
负载将在节点 A 和 B 间进行平衡。如果两者都不可用,那么节点 C 将承担负载。
mod_manager
除了另有说明,mod_manager 指令的上下文总是 VirtualHost。server config 上下文暗示指令必须位于 VirtualHost 配置的外面。否则将显示错误信息且 Apache HTTP Server 不会启动。
表 A.84. mod_manager 指令
| 指令 | 描述 | 值 |
|---|---|---|
|
EnableMCPMReceive |
允许 VirtualHost 从节点接收 MCPM。在 Apache HTTP Server 配置里包含 EnableMCPMReceive 以允许 mod_cluster 正常运行。将其保存在 VirtualHost 里您配置广告的地方。 | |
|
MemManagerFile |
mod_manager 用来存储配置、生成用于共享内存或锁定文件的密钥的基础名称。它必须是一个绝对路径名称,目录根据需要来创建。我们推荐将这些文件放入本地磁盘而不是 NFS 共享位置。 |
|
|
Maxcontext |
mod_cluster 支持的最大上下文数量 |
默认值: |
|
Maxnode |
mod_cluster. Context: server config 支持的最大节点数量 |
默认值: |
|
Maxhost |
mod_cluster 支持的最大主机(别名)数量。它也包含平衡器的最大数量。 |
默认值: |
|
Maxsessionid |
提供 mod_cluster-manager 处理程序里活动会话数量的活动 sessionid 的数量。当 mod_cluster 在 5 分钟内没有从会话接收任何信息时,会话就是非活动的。这个字段仅用于演示和调试目的。 |
|
|
MaxMCMPMaxMessSize |
来自其他 Max 指令的 MCMP 消息的最大尺寸 |
从其他 Max 指令计算的最小值: |
|
ManagerBalancerName |
当 JBoss EAP 实例没有提供平衡器名称时使用的平衡器名称。 |
mycluster |
|
PersistSlots |
告诉 mod_slotmem 将节点、编码和上下文持久化至文件里。 |
Off |
|
CheckNonce |
当使用 mod_cluster-manager 处理程序时切换 nonce 的检查。 |
on/off 默认:on - 已检查 Nonce |
|
AllowDisplay |
切换 mod_cluster-manager 主页上的其他显示。 |
on/off 默认:off - 只显示版本 |
|
AllowCmd |
允许使用 mod_cluster-manager URL 的命令。 |
on/off 默认:on - 允许的命令 |
|
ReduceDisplay |
减少 mod_cluster-manager 主页上显示的信息,从而可以显示更多的节点。 |
on/off 默认:off - 显示完整信息 |
|
SetHandler mod_cluster-manager |
显示 mod_cluster 从集群获得的节点信息。这些信息包含普通信息以及活动会话的计数。 <Location /mod_cluster-manager> SetHandler mod_cluster-manager Require ip 127.0.0.1 </Location> |
on/off 默认:off |
当访问 httpd.conf 里定义的位置时:
- Transferred:对应发送至后台服务器的 POST 数据。
- Connected:对应当 mod_cluster 状态页面被请求时已处理的请求数量。
- Num_sessions:对应 mod_cluster 报告为活动(过去 5 分钟内有请求)的会话数量。当 Maxsessionid 为 0 时,这个字段不会出现。它仅用于演示和调试目的。
A.26. ModCluster 子系统属性
modcluster 子系统具有以下结构:
表 A.85. mod-cluster-config 配置选项
| 属性 | Default | 描述 |
|---|---|---|
|
advertise |
true |
是否使用 Advertise 逻辑。 |
|
advertise-security-key |
包含用于 Advertise 逻辑的安全密钥的字符串。 | |
|
advertise-socket |
用于 Advertise 套接字的套接字绑定的名称。 | |
|
auto-enable-contexts |
true |
即使 mod_cluster_manager (httpd) 里禁用也启用上下文。 |
|
balancer |
平衡器的名称。 | |
|
connector |
mod_cluster 反向代理将连接的 Undertow listener 的名称。 | |
|
excluded-contexts |
mod_cluster 应该忽略的上下文列表,它是用逗号隔开的格式化字符串。 | |
|
flush-packets |
false |
启用/禁用 HTTPD 里的数据包冲刷。 |
|
flush-wait |
-1 |
冲刷 HTTPD 里的数据包前等待的时间。最大值是 |
|
load-balancing-group |
loadBalancingGroup 的名称。 | |
|
max-attempts |
1 |
处理幂等请求(idempotent request)的最多尝试次数。允许的值介于 |
|
node-timeout |
-1 |
节点的代理连接的超时时间(秒)。允许的值介于 |
|
ping |
10 |
等待对 ping 的 pong 回复的时间(秒)。 |
|
proxies |
mod_cluster 用 socket-binding-group 里定义的 outbound-socket-binding 注册的代理的列表。 | |
|
proxy-list |
代理的列表。格式为用逗号隔开的字符串(hostname:port)。 注意
| |
|
proxy-url |
/ |
MCMP 请求的基础 URL。 |
|
session-draining-strategy |
DEFAULT |
卸载 Web 应用程序时的会话消耗策略。 |
|
simple-load-provider |
简单的负载提供者。允许的值介于 | |
|
smax |
-1 |
HTTPD 里的软空闲连接计数的最大值。允许的值介于 |
|
socket-timeout |
20 |
等待 HTTPD 响应 MCMP 消息的超时时间。允许的值介于 |
|
status-interval |
10 |
STATUS 消息从应用范围器发送至反向代理花费的时间(秒)。允许的值介于 |
|
sticky-session |
true |
对请求使用粘性会话。 |
|
sticky-session-force |
false |
不要用会话信息对请求进行失效切换。 |
|
sticky-session-remove |
false |
在失效切换时删除会话信息。 |
|
stop-context-timeout |
10 |
等待上下文处理待定请求的最长时间。允许的值介于 |
|
ttl |
-1 |
空闲连接超过 smax 的存活时间(秒)。允许的值介于 |
|
worker-timeout |
-1 |
HTTPD 里等待可用工作节点处理请求的超时时间。允许的值介于 |
表 A.86. dynamic-load-provider 配置选项
| 属性 | Default | 描述 |
|---|---|---|
|
decay |
2 |
延迟。 |
|
history |
9 |
历史。 |
表 A.87. custom-load-metric 属性选项
| 属性 | Default | 描述 |
|---|---|---|
|
capacity |
1.0 |
度量的容量。 |
|
class |
自定义度量的类名。 | |
|
property |
度量的属性。 | |
|
weight |
1 |
度量的权重。 |
表 A.88. load-metric 属性选项
| 属性 | Default | 描述 |
|---|---|---|
|
capacity |
1.0 |
度量的容量。 |
|
property |
度量的属性。 | |
|
type |
度量的类型。 | |
|
weight |
1 |
度量的权重。 |
表 A.89. ssl 属性选项
| 属性 | Default | 描述 |
|---|---|---|
|
ca-certificate-file |
证书机构。 | |
|
ca-revocation-url |
证书认证机构的撤销列表。 | |
|
certificate-key-file |
${user.home}/.keystore |
证书的密钥文件。 |
|
cipher-suite |
允许的密码套件。 | |
|
key-alias |
密钥别名。 | |
|
password |
changeit |
密码。 |
|
protocol |
TLS |
已启用的 SSL 协议。 |
A.27. mod_jk 工作节点属性
workers.properties 文件定义 mod_jk 传入客户请求的工作节点的行为。workers.properties 文件定义不同的应用服务器所在的位置,以及如何在它们之间进行负载平衡。
属性的常用结构是 worker.WORKER_NAME.DIRECTIVE。WORKER_NAME 是必须匹配 JBoss EAP undertow 子系统里配置的 instance-id 的唯一名称。DIRECTIVE 是应用至工作节点的设置。
用于 Apache mod_jk 负载平衡器的配置引用
模板指定默认的 per-load-balancer 设置。您可以在 load-balancer 设置里覆盖这个模板。
表 A.90. 全局属性
| 属性 | 描述 |
|---|---|
|
worker.list |
用逗号隔开的将被 mod_jk 使用的工作节点列表。 |
表 A.91. 强制的指令
| 属性 | 描述 |
|---|---|
|
type |
工作节点的类型。默认类型是 |
表 A.92. 负载平衡指令
| 属性 | 描述 |
|---|---|
|
balance_workers |
指定负载平衡器必须管理的工作节点。您可以对相同的负载平衡器多次使用这个指令。它由一个用逗号隔开的工作节点名称列表组成。 |
|
sticky_session |
指定来自相同会话的请求是否总被路由至相同的工作节点。默认值是 1,表示启用粘性会话。要禁用粘性会话,请将其设置为 0。通常应该启用粘性会话,除非所有的请求都是完全无状态的。 |
表 A.93. 连接指令
| 属性 | 描述 |
|---|---|
|
host |
后台服务器的主机名或 IP 地址。后台服务器必须支持 ajp 协议栈。默认值是 localhost。 |
|
port |
后台服务器实例侦听定义的协议请求的端口。默认值是 8009,这是 AJP13 工作节点的默认侦听端口。AJP14 工作节点的默认值是 8011。 |
|
ping_mode |
检测连接的网络状态依据的条件。检测使用空的 AJP13 数据包进行 CPing,期待 CPong 响应。使用指令标记组合来指定条件。这些标记不是用逗号或其他任何空格隔开的。ping_mode 可以是 C、P、I 和 A 的任意组合。
|
|
ping_timeout, connect_timeout, prepost_timeout, connection_ping_interval |
上面的连接探测设置的超时时间。单位为毫秒,ping_timeout 的默认值是 10000。 |
|
lbfactor |
指定单独的后台服务器实例的负载平衡因子。为功能越强的服务器赋予越多的负载是很有用的。要赋予某个工作节点 3 倍于默认的负载,请将其设置为 3: |
下面的例子演示了用两个侦听端口 8009 工作节点(node1 和 node2)间的粘性会话进行负载平衡。
workers.properties 文件示例
# Define list of workers that will be used for mapping requests worker.list=loadbalancer,status # Define Node1 # modify the host as your host IP or DNS name. worker.node1.port=8009 worker.node1.host=node1.mydomain.com worker.node1.type=ajp13 worker.node1.ping_mode=A worker.node1.lbfactor=1 # Define Node2 # modify the host as your host IP or DNS name. worker.node2.port=8009 worker.node2.host= node2.mydomain.com worker.node2.type=ajp13 worker.node2.ping_mode=A worker.node2.lbfactor=1 # Load-balancing behavior worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.loadbalancer.sticky_session=1 # Status worker for managing load balancer worker.status.type=status
关于 Apache mod_jk 的进一步配置超出了本文档的范畴,您可以在Apache 文档里找到它们。
A.28. 安全管理者子系统属性
security-manager 子系统自身没有可配置属性,但它有一个带有可配置属性的子资源:deployment-permissions=default。
表 A.94. 默认的配置选项
| 属性 | Default | 描述 |
|---|---|---|
|
maximum-permissions |
赋予部署或 JAR 的最大权限集。 | |
|
minimum-permissions |
赋予部署或 JAR 的最小权限集。 |
Revised on 2018-01-12 05:20:26 EST

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.