A.27. Undertow 子系统属性

下表中列出了 undertow 子系统的各种元素的属性。

注意

这些表中的属性名称会在管理模型中出现时列出,例如使用管理 CLI 时。请参阅位于 EAP_HOME/docs/schema/wildfly-undertow_4_0.xsd 的架构定义文件,以查看 XML 中出现的元素,因为管理模型可能会有所不同。

表 A.59. 主要 undertow 属性

属性默认描述

default-security-domain

其他

Web 部署使用的默认安全域。

default-server

default-server

用于部署的默认服务器。

default-servlet-container

default

用于部署的默认 servlet 容器。

default-virtual-host

default-host

用于部署的默认虚拟主机。

instance-id

${jboss.node.name}

集群实例 ID。

statistics-enabled

false

是否启用统计数据.

应用程序安全域属性

应用程序安全域属性具有以下结构:

application-security-domain Attributes

表 A.60. application-security-domain Attributes

属性默认描述

enable-jacc

false

通过 JACC 启用授权。

enable-jaspi

true

为关联的部署启用 JASPI 身份验证。

http-authentication-factory

 

引用映射的安全域的部署要使用的 HTTP 身份验证工厂。

integrated-jaspi

true

是否应使用集成的 JASPI。当在 JASPI 身份验证期间设置为 true 时,身份从部署引用的 SecurityDomain 加载。如果设置为 false,则会创建临时身份。

override-deployment-config

false

部署中的身份验证配置是否应该被工厂覆盖。

引用部署

 

当前引用此映射的部署。

security-domain

 

部署要使用的 SecurityDomain

单点登录属性

表 A.61. 单点登录属性

属性默认描述

client-ssl-context

 

引用用于保护 back-channel 注销连接的 SSL 上下文。

cookie-name

JSESSIONIDSSO

Cookie 的名称。

credential-reference

 

凭据引用用于解密私钥条目。

domain

 

将使用的 Cookie 域。

http-only

false

设置 Cookie httpOnly 属性.

key-alias

 

用于签名并验证 back-channel 注销连接的私钥条目别名。

key-store

 

对包含私钥条目的密钥存储的引用.

路径

/

Cookie 路径.

安全

false

设置 Cookie 安全属性.

缓冲区缓存属性

表 A.62. buffer-cache 属性

属性默认描述

buffer-size

1024

缓冲区的大小。更小的缓冲区允许更有效地使用空间。

buffers-per-region

1024

每个区域的缓冲区数量。

Max-regions

10

区域的最大数量.这控制可用于缓存的最大内存量。

字节缓冲区池属性

表 A.63. byte-buffer-pool Attributes

属性默认描述

buffer-size

 

每个缓冲区片段的大小(以字节为单位)。如果没有指定,则根据系统的可用 RAM 设置大小:

  • RAM 小于 64 MB 的 512 字节
  • 1024 bytes (1 KB) for 64 MB - 128 MB RAM
  • 16384 字节(16 KB),用于 128 MB RAM

有关此属性的性能调优建议,请参阅 JBoss EAP 性能调优指南中的配置 https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.3/html-single/performance_tuning_guide/#io_buffer_pools 缓冲池

direct

 

表示此缓冲区是否为直接还是堆池的布尔值。如果没有指定,则该值会根据系统的可用 RAM 设置:

  • 如果可用 RAM 是 < 64MB,则值设为 false
  • 如果可用 RAM 是 >= 64MB,则值被设置为 true

请注意,直接池也有对应的堆池。

leak-detection-percent

0

应使用泄漏检测器分配的缓冲区百分比。

max-pool-size

 

要在池中保留的最大缓冲区数量。缓冲区仍会被分配超过这个限制,但如果池已满,则不会保留。

thread-local-cache-size

12

每个线程缓存的大小。这是最大大小,缓存将使用智能大小调整来仅在线程实际分配缓冲区时保留线程上的缓冲。

servlet 容器属性

servlet 容器组件具有以下结构:

servlet-container 属性

表 A.64. servlet-container 属性

属性默认描述

allow-non-standard-wrappers

false

是否可以使用不扩展标准打包程序类的请求和响应封装器。

default-buffer-cache

default

用于缓存静态资源的缓冲区缓存。

default-cookie-version

0

用于应用创建的 Cookie 的默认 cookie 版本。

default-encoding

 

用于所有已部署应用的默认编码。

default-session-timeout

30

容器中部署的所有应用的默认会话超时时间(以分钟为单位)。

directory-listing

 

如果应该为默认 servlet 启用目录列表:

disable-caching-for-secured-pages

true

是否为受保护的 paged 设置标头来禁用缓存。禁用此功能可能会导致安全问题,因为敏感页面可以被中间人缓存。

disable-file-watch-service

false

如果设为 true,则不会使用文件监视服务来监控爆炸式部署中的更改。此属性覆盖了 io.undertow.disable-file-system-watcher 系统属性。

disable-session-id-reuse

false

如果设为 true,则永远不会重复使用未知会话 ID 并生成新的会话 ID。如果设置为 false,则只有另一部署的会话管理器中存在会话 ID,以允许在同一服务器上的应用之间共享相同的会话 ID,才会重复使用会话 ID。

eager-filter-initialization

false

是否在部署时调用过滤器 init(),而不是在第一次请求时调用。

ignore-flush

false

忽略 servlet 输出流上的刷新。在大多数情况下,这些都毫无理由影响性能。

max-sessions

 

一次可以处于活跃状态的会话数量上限。

主动验证

true

是否应该使用主动身份验证。如果这是 true,则如果存在凭据,用户将始终进行身份验证。

session-id-length

30

会话 ID 越长,安全性越高。此值指定生成的会话 ID 的长度,以字节为单位。系统将生成的会话 ID 编码为 Base64 字符串,并将结果作为会话 ID Cookie 提供给客户端。由于此处理,服务器向客户端发送一个 Cookie 值,比原先生成的会话 ID 大约为 33%。例如,会话 ID 长度为 30 时,cookie 值长度为 40。

stack-trace-on-error

local-only

如果错误时应生成带有堆栈 trace 的错误页面。值是 全部 值和 仅本地值.

use-listener-encoding

false

使用侦听器中定义的编码。

miME-mapping Attributes

表 A.65. miME-mapping Attributes

属性默认描述

value

 

此映射的 mime 类型。

crawler-session-management Attributes

为爬虫 bots 配置特殊会话处理。

注意

在使用管理 CLI 管理 crawler-session-management 元素时,它位于 servlet-container 元素 的设置 下。例如:

/subsystem=undertow/servlet-container=default/setting=crawler-session-management:add
/subsystem=undertow/servlet-container=default/setting=crawler-session-management:read-resource

表 A.66. crawler-session-management Attributes

属性默认描述

session-timeout

 

由 crawlers 拥有的会话的会话超时(以秒为单位)。

user-agents

 

用于匹配爬虫的用户代理的正则表达式。

JSP 属性
注意

在使用管理 CLI 管理 jsp 元素时,它位于 servlet-container 元素 的设置 下。例如:

/subsystem=undertow/servlet-container=default/setting=jsp:read-resource

表 A.67. JSP 属性

属性默认描述

check-interval

0

使用后台线程检查 JSP 更新的间隔。这不适用于大多数使用文件系统通知 API 处理 JSP 更改通知的部署。这只有在文件 watch 服务被禁用时才生效。

开发

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

生成字符串常量作为 char 数组。

java-encoding

UTF8

指定用于 Java 源的编码。

keep-generated

true

保留生成的 servlet。

mapping-file

true

映射到 JSP 源.

modification-test-interval

4

两次测试用于更新的最短时间,以秒为单位。

optimize-scriptlets

false

如果 JSP 脚本let 应该被优化来删除字符串串联。

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 驱动型 JSP 引擎的广告。

persistent-sessions 属性
注意

在使用管理 CLI 管理 persistent-sessions 元素时,它位于 servlet-container 元素 的设置 下。例如:

/subsystem=undertow/servlet-container=default/setting=persistent-sessions:add
/subsystem=undertow/servlet-container=default/setting=persistent-sessions:read-resource

表 A.68. persistent-sessions 属性

属性默认描述

路径

 

持久会话数据目录的路径。如果为空,会话将存储在内存中。

relative-to

 

路径相对于的目录。

注意

在使用管理 CLI 管理 session-cookie 元素时,它位于 servlet-container 元素 的设置 下。例如:

/subsystem=undertow/servlet-container=default/setting=session-cookie:add
/subsystem=undertow/servlet-container=default/setting=session-cookie:read-resource

表 A.69. session-cookie 属性

属性默认描述

注释

 

Cookie 注释.

domain

 

Cookie 域.

http-only

 

Cookie 是否仅 http .

max-age

 

Cookie 最长期限.

name

 

Cookie 的名称。

安全

 

Cookie 是否安全。

Websockets 属性
注意

在使用管理 CLI 管理 websockets 元素时,它位于 servlet-container 元素 的设置 下。例如:

/subsystem=undertow/servlet-container=default/setting=websockets:read-resource

表 A.70. Websockets 属性

属性默认描述

buffer-pool

default

用于 websocket 部署的缓冲区池。

deflater-level

0

配置 DEFLATE 算法的压缩级别。

dispatch-to-worker

true

回调是否应该分配给 worker 线程。如果这为 false,则它们在 IO 线程中运行,速度更快,但必须小心不要执行阻止操作。

per-message-deflate

false

启用 websocket 按消息压缩扩展。

worker

default

用于 websocket 部署的 worker。

welcome-file 属性

定义一个欢迎文件,并且没有选项。

过滤属性

这些组件可以在 /subsystem=undertow/configuration=filter 找到。

custom-filter 过滤器

表 A.71. custom-filter 属性

属性默认描述

class-name

 

HttpHandler 类名称.

module

 

从其中加载类的模块名称。

parameters

 

过滤参数.

错误页面过滤器

错误页面

表 A.72. 错误页面属性

属性默认描述

Code

 

错误页面代码.

路径

 

错误页面路径.

expression-filter 过滤器

从 Undertow 表达式语言解析的过滤器。

表 A.73. expression-filter 属性

属性默认描述

expression

 

定义过滤器的表达式。

module

 

用于加载过滤器定义的模块。

gzip 过滤器

定义 gzip 过滤器,并且没有属性。

MoD-cluster 过滤器

mod-cluster 过滤器组件具有以下结构:

表 A.74. MoD-cluster Attributes

属性默认描述

advertise-frequency

10000

mod_cluster 在网络上公告自身的频率(以毫秒为单位)。

advertise-path

/

mod_cluster 注册的路径。

advertise-protocol

http

正在使用的协议。

advertise-socket-binding

 

用于公告的多播组。

break-node-timeout

60000

从表中删除中断的节点前必须等待的时间。

cached-connections-per-thread

5

无限期保留的连接数。

connection-idle-timeout

60

连接在关闭前可以闲置的时间。池大小到配置的最小值后,连接不会超时,这由 cached -connections-per-thread 配置。

connections-per-thread

10

每个 IO 线程将维护到后端服务器的连接数量。

enable-http2

false

负载均衡器是否应该尝试将后端连接升级到 HTTP/2。如果不支持 HTTP/2,则将正常使用 HTTP 或 HTTPS。

failover-strategy

LOAD_BALANCED

确定如何在会话的节点不可用时选择故障切换节点的属性。

health-check-interval

10000

对后端节点进行健康检查的频率。

http2-enable-push

true

是否应该为 HTTP/2 连接启用 push。

http2-header-table-size

4096

用于 HPACK 压缩的标头表大小,以字节为单位。此内存量将分配给每个连接以进行压缩。较大的值使用更多内存,但可能会提供更好的压缩。

http2-initial-window-size

65535

流控制窗口大小(以字节为单位),它控制客户端向服务器发送数据的速度。

http2-max-concurrent-streams

 

在单个连接上随时处于活跃状态的 HTTP/2 流的最大数量。

http2-max-frame-size

16384

最大 HTTP/2 帧大小,以字节为单位。

http2-max-header-list-size

 

服务器准备接受的请求标头的最大大小,以字节为单位。

management-access-predicate

 

应用到传入请求的 predicate,以确定它们是否可以执行 mod 集群管理命令。通过将管理限制为源自 management- socket-binding 的请求来提供额外的安全性。

management-socket-binding

 

mod_cluster 管理端口的套接字绑定。使用 mod_cluster 时应定义两个 HTTP 侦听器,一个用于处理请求,另一个则绑定到内部网络来处理群集命令。此套接字绑定应当与内部监听器对应,并且不应公开访问。

max-ajp-packet-size

8192

AJP 数据包的最大大小,以字节为单位。增加此设置可让 AJP 处理具有大量标头的请求和响应。这在负载均衡器和后端服务器之间必须相同。

max-request-time

-1

向后端节点的请求在终止前可以等待的最长时间。

max-retries

1

如果请求失败,则尝试重试请求的次数。

注意

如果请求不被视为幂等,则只有在代理可以确定它没有发送到后端服务器时,才会重试请求。

request-queue-size

10

如果在请求被拒绝 503 之前连接池已满,可以排队的请求数。

security-key

 

用于 mod_cluster 组的安全键。所有成员必须使用相同的安全密钥。

security-realm

 

提供 SSL 配置的安全域。弃用: 使用ssl-context 属性直接引用配置的 SSLContext。

ssl-context

 

对过滤器使用的 SSLContext 的引用。

use-alias

false

是否执行别名检查。

worker

default

用于发送公告通知的 XNIO 工作程序。

表 A.75. 负载均衡器属性

属性默认描述

max-attempts

 

将请求发送到后端服务器的尝试数量。

sticky-session

 

如果启用了粘性会话.

sticky-session-cookie

 

会话 Cookie 名称。

sticky-session-force

 

如果为 true,则如果请求无法路由到 sticky 节点,则返回错误,否则它将路由到另一节点。

sticky-session-path

 

粘性会话 Cookie 的路径。

sticky-session-remove

 

如果请求无法路由到正确的主机,则删除会话 Cookie。

wait-worker

 

等待可用 worker 的秒数。

load-balancing-group Attributes

定义负载平衡组,无选项。

表 A.76. 节点属性

属性默认描述

Alias

 

节点别名。

cache-connections

 

无限期保持活动的连接数。

已选择

 

已选定计数。

flush-packets

 

如果收到数据,应立即清空。

load

 

此节点的当前负载。

load-balancing-group

 

此节点所属的负载平衡组。

max-connections

 

每个 IO 线程的最大连接数。

open-connections

 

当前打开的连接数。

ping

 

节点 ping。

queue-new-requests

 

如果收到请求,并且没有 worker 立即可用(如果它排队)。

读取

 

从节点读取的字节数。

request-queue-size

 

请求队列的大小。

status

 

此节点的当前状态。

timeout

 

请求超时。

ttl

 

如果连接的数量大于 cache-connections,则在关闭前,时间连接将保持活动状态且无请求。

uri

 

负载平衡器用于连接节点的 URI。

written

 

传输到节点的字节数。

表 A.77. 上下文属性

属性默认描述

requests

 

针对此上下文的请求数。

status

 

此上下文的状态。

request-limit Filters

表 A.78. request-limit 属性

属性默认描述

max-concurrent-requests

 

并发请求的最大数量.

queue-size

 

在队列开始被拒绝前的请求数。

response-header Filters

通过响应标头过滤器,您可以添加自定义标头。

表 A.79. response-header Attributes

属性默认描述

header-name

 

标头名称。

header-value

 

标头值。

重写过滤器

表 A.80. 重写属性

属性默认描述

重定向

false

是否要进行重定向而不是重写.

目标

 

定义目标的表达式。如果您要重定向到固定目标,请在值旁边放置单引号。

处理程序属性

这些组件可以在 /subsystem=undertow/configuration=handler 找到。

文件属性

表 A.81. 文件属性

属性默认描述

cache-buffer-size

1024

缓冲区的大小.

cache-buffers

1024

缓冲区数量.

case-sensitive

true

是否使用区分大小写的文件处理.请注意,仅当底层文件系统不区分大小写时,此选项 针对 大小写敏感才能使用。

directory-listing

false

是否启用目录列表.

follow-symlink

false

是否启用以下符号链接:

路径

 

文件处理程序将提供资源的文件系统中的路径。

safe-symlink-paths

 

符号链接目标安全的路径.

将 WebDAV 用于静态资源

早期版本的 JBoss EAP 允许通过 Web davServlet 将 Web DAV 与 Web 子系统搭配使用,以托管静态资源,并且启用额外的 HTTP 方法来访问和操作这些文件。在 JBoss EAP 7 中,undertow 子系统提供了使用文件处理程序提供静态文件的机制,但 undertow 子系统不支持 WebDAV。如果要将 WebDAV 与 JBoss EAP 7 搭配使用,您可以编写自定义 WebDAVservlet。

reverse-proxy 属性

reverse-proxy 处理器组件具有以下结构:

表 A.82. reverse-proxy 属性

属性默认描述

cached-connections-per-thread

5

无限期保留的连接数。

connection-idle-timeout

60

连接在关闭前可以闲置的时间。当池大小到配置的最小值(如 cached-connections-per-thread 配置)后,连接不会超时。

connections-per-thread

40

每个 IO 线程将维护到后端服务器的连接数量。

max-request-time

-1

代理请求在被终止前可以激活的最长时间。默认值为无限。

max-retries

1

如果请求失败,则尝试重试请求的次数。

注意

如果请求不被视为幂等,则只有在代理可以确定它没有发送到后端服务器时,才会重试请求。

problem-server-retry

30

尝试重新连接到停机的服务器前等待的时间(以秒为单位)。

request-queue-size

10

如果在请求被拒绝 503 之前连接池已满,可以排队的请求数。

session-cookie-names

JSESSIONID

会话 Cookie 名称的逗号分隔列表。通常这仅仅是 JSESSIONID。

表 A.83. 主机属性

属性默认描述

enable-http2

false

如果为 true,代理将尝试使用 HTTP/2 连接到后端。如果不支持,它将回退到 HTTP/1.1。

instance-id

 

用于启用粘性会话的实例 ID 或 JVM 路由。

outbound-socket-binding

 

此主机的出站套接字绑定.

路径

/

如果主机使用非 root 资源,则可选路径。

scheme

http

使用的方案类型。

security-realm

 

为主机连接提供 SSL 配置的安全域。

ssl-context

 

引用此处理程序要使用的 SSLContext。

服务器属性

服务器组件有以下结构:

服务器属性

表 A.84. 服务器属性

属性默认描述

default-host

default-host

服务器的默认虚拟主机.

servlet-container

default

服务器的默认 servlet 容器。

ajP-listener Attributes

表 A.85. ajP-listener Attributes

属性默认描述

allow-encoded-slash

false

如果请求附带编码的字符,如 %2F,则请求是否将被解码。

allow-equals-in-cookie-value

false

是否允许非转义的 cookie 值中的字符等于字符。未引用的 Cookie 值可能不包含等同字符。如果值在等号之前结束。Cookie 值的其余部分将被丢弃。

allow-unescaped-characters-in-url

false

是否允许 URL 中的非转义字符。如果设置为 true,侦听器会处理包含非转义、非 ASCII 字符的任何 URL。如果设置为 false,侦听器将拒绝包含非转义、非 ASCII 字符且带有 HTTP Bad Request 400 响应代码的任何 URL。

always-set-keep-alive

true

是否会在响应中添加 Connection: keep-alive 标头,即使该规范没有严格要求。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

AJP 侦听器的缓冲区池.

decode-url

true

如果这是 true,解析器将使用选定的字符编码解码 URL 和查询参数,默认为 UTF-8。如果这是误,则不会解码。这将允许后续处理程序将它们解码到所需的任何 charset 中。

disallowed-methods

["TRACE"]

不允许的 HTTP 方法的逗号分隔列表。

enabled

true

如果启用了监听程序。弃用:启用的属性可能会导致实施配置一致性出现问题。

max-ajp-packet-size

8192

AJP 数据包支持的最大值。如果修改了这个值,它会在负载均衡器和后端服务器上增加。

max-buffered-request-size

16384

缓冲请求的最大大小(以字节请求为单位)通常不会被缓冲,最常见的情况是在对 POST 请求执行 SSL 重新协商时,并且必须完全缓冲后数据才能执行重新协商。

max-connections

 

并发连接的最大数量。如果没有在服务器配置中设置值,则并发连接数的限制为 Integer.MAX_VALUE

max-cookies

200

要解析的最大 Cookie 数。这用于防止哈希漏洞。

max-header-size

1048576

HTTP 请求标头的最大字节大小。

max-headers

200

要解析的最大标头数。这用于防止哈希漏洞。

max-parameters

1000

要解析的参数的最大数量。这用于防止哈希漏洞。这适用于查询参数和 POST 数据,但不适用于累积数据。例如,您可以具有 max 参数 * 2 个总参数。

max-post-size

10485760

将接受的 post 的最大大小

no-request-timeout

60000

容器关闭连接前可以闲置的时长,以毫秒为单位。

read-timeout

 

配置套接字的读取超时,以毫秒为单位。如果给定的时间没有成功读取,则套接字的下一个读取将引发 ReadTimeoutException

receive-buffer

 

接收缓冲区的大小。

record-request-start-time

false

是否记录请求的开始时间,以允许记录请求时间。这会对性能产生轻微但可观的影响。

redirect-socket

 

如果此侦听器支持非 SSL 请求,并且收到匹配项需要 SSL 传输的请求,则是否自动将请求重定向到此处指定的套接字绑定端口。

request-parse-timeout

 

解析请求的最长时间,以毫秒为单位。

resolve-peer-address

false

启用主机 DNS 查找。

scheme

 

侦听器方案可以是 HTTP 或 HTTPS。默认情况下,方案将从传入的 AJP 请求中获取。

安全

false

如果 情况如此,则源自此侦听器的请求会标记为安全,即使请求不使用 HTTPS。

send-buffer

 

发送缓冲区大小。

socket-binding

 

AJP 侦听器的套接字绑定.

tcp-backlog

 

配置具有指定积压的服务器.

tcp-keep-alive

 

将通道配置为以依赖实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL charset.

worker

default

侦听器的 XNIO 工作程序.

write-timeout

 

为套接字配置写入超时,以毫秒为单位。如果给定的时间没有成功写入,则套接字的下一次写入将引发 WriteTimeoutException

主机属性

表 A.86. 主机属性

属性默认描述

Alias

 

以逗号分隔的主机别名列表。

default-response-code

404

如果设置,这是在服务器上不存在请求的上下文时发回的响应代码。

default-web-module

ROOT.war

默认 Web 模块.

disable-console-redirect

false

如果设为 true,则不会为此主机启用/console 重定向。

queue-requests-on-start

true

如果设为 true,则在此主机的启动时应将请求排队。如果设为 false,则返回默认的响应代码。

filter-ref Attributes

表 A.87. filter-ref Attributes

属性默认描述

predicate

 

predicates 提供了一种基于交换做出正确/假决策的简单方法。许多处理程序都要求有条件地应用它们,谓词则提供指定条件的一般方式。

priority

1

定义过滤顺序。较低数字指示服务器早期包含在处理程序链中,而与其他上下文上方的其他链相比。值范围为 1,表示将首先处理过滤器到 2147483647,从而导致最后处理的过滤器。

位置属性

表 A.88. 位置属性

属性默认描述

handler

 

此位置的默认处理程序.

filter-ref Attributes

表 A.89. filter-ref Attributes

属性默认描述

predicate

 

predicates 提供了一种基于交换做出正确/假决策的简单方法。许多处理程序都要求有条件地应用它们,谓词则提供指定条件的一般方式。

priority

1

定义过滤顺序。它应设置为 1 或更多。较高的数字指示服务器早于同一上下文下的其他链包含在处理程序链中。

access-log 属性
注意

在使用管理 CLI 管理 access-log 元素时,它位于 主机 元素的 设置 下。例如:

/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.90. access-log 属性

属性默认描述

目录

${jboss.server.log.dir}

要保存日志的目录。

Extended

false

日志是否使用扩展日志文件格式。

pattern

common

访问日志模式。如需有关可用于此属性的选项的详细信息,请参阅 JBoss EAP 开发指南中的提供 Undertow 处理程序

注意

如果您将 模式 设置为打印处理请求的时间,您必须在适当的监听器上启用 record-request-start-time 属性;否则,访问日志中将无法正确记录时间。例如:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=record-request-start-time,value=true)

predicate

 

确定是否应记录请求的 predicate。

prefix

access_log.

日志文件名称的前缀。

relative-to

 

路径相对于的目录。

rotate

true

是否每天轮转访问日志。

suffix

log

日志文件名称的后缀。

use-server-log

false

日志是否应写入到服务器日志,而不是单独的 文件。

worker

default

用于日志记录的 worker 的名称。

console-access-log 属性

表 A.91. console-access-log 属性

属性默认描述

属性

{remote-host={},remote-user={},date-time={},request-line={},response-code={},bytes-sent={}}

指定要包含在控制台访问日志输出中的日志数据,或自定义默认数据。

include-host-name

false

指定是否将主机名包含在 JSON 结构化输出中。如果设置为 true,结构化数据中的键为"hostName",其值是配置 console-access-log 的主机的名称。

metadata

 

指定要包含在控制台访问日志输出中的自定义元数据。

predicate

 

确定是否应记录请求的 predicate。

worker

default

用于日志记录的 worker 的名称。

HTTP-invoker Attributes

表 A.92. HTTP-invoker Attributes

属性默认描述

http-authentication-factory

 

用于身份验证的 HTTP 身份验证工厂。

路径

wildfly-services

安装服务的路径。

security-realm

 

用于身份验证的传统安全域。

单点登录属性
注意

在使用管理 CLI 管理 单点登录元素时,它位于 主机 元素的 设置 下。例如:

/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.93. 单点登录属性

属性默认描述

cookie-name

JSESSIONIDSSO

Cookie 的名称。

domain

 

将使用的 Cookie 域。

http-only

false

设置 Cookie httpOnly 属性.

路径

/

Cookie 路径.

安全

false

设置 Cookie 安全属性.

HTTP-listener Attributes

表 A.94. HTTP-listener Attributes

属性默认描述

allow-encoded-slash

false

如果请求附带编码的字符,如 %2F,则请求是否将被解码。

allow-equals-in-cookie-value

false

是否允许非转义的 cookie 值中的字符等于字符。未引用的 Cookie 值可能不包含等同字符。如果值在等号之前结束。Cookie 值的其余部分将被丢弃。

allow-unescaped-characters-in-url

false

是否允许 URL 中的非转义字符。如果设置为 true,侦听器会处理包含非转义、非 ASCII 字符的任何 URL。如果设置为 false,侦听器将拒绝包含非转义、非 ASCII 字符且带有 HTTP Bad Request 400 响应代码的任何 URL。

always-set-keep-alive

true

是否会在响应中添加 Connection: keep-alive 标头,即使该规范没有严格要求。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

侦听器的缓冲区池。

certificate-forwarding

false

是否启用证书转发。如果启用此项,侦听器将从 SSL_CLIENT_CERT 属性获取 证书。只有在代理后面时才启用此功能,代理会被配置为始终设置这些标头。

decode-url

true

解析器是否使用选定的字符编码解码 URL 和查询参数,默认为 UTF-8。如果这是误,则不会解码。这将允许后续处理程序将它们解码到所需的任何 charset 中。

disallowed-methods

["TRACE"]

不允许的 HTTP 方法的逗号分隔列表。

enable-http2

false

是否为此侦听器启用 HTTP/2 支持。

enabled

true

是否启用监听器。弃用:启用的属性可能会导致实施配置一致性出现问题。

http2-enable-push

true

是否为此连接启用了服务器推送。

http2-header-table-size

4096

用于 HPACK 压缩的标头表的大小(以字节为单位)。此内存量将分配给每个连接以进行压缩。较大的值使用更多内存,但可能会提供更好的压缩。

http2-initial-window-size

65535

流控制窗口大小(以字节为单位),它控制客户端向服务器发送数据的速度。

http2-max-concurrent-streams

 

在单个连接上随时处于活跃状态的 HTTP/2 流的最大数量。

http2-max-frame-size

16384

最大 HTTP/2 帧大小,以字节为单位。

http2-max-header-list-size

 

服务器准备接受的最大请求标头大小。

max-buffered-request-size

16384

缓冲请求的最大大小(以字节请求为单位)通常不会被缓冲,最常见的情况是在对 POST 请求执行 SSL 重新协商时,并且必须完全缓冲后数据才能执行重新协商。

max-connections

 

并发连接的最大数量。如果没有在服务器配置中设置值,则并发连接数的限制为 Integer.MAX_VALUE

max-cookies

200

要解析的最大 Cookie 数。这用于防止哈希漏洞。

max-header-size

1048576

HTTP 请求标头的最大字节大小。

max-headers

200

要解析的最大标头数。这用于防止哈希漏洞。

max-parameters

1000

要解析的参数的最大数量。这用于防止哈希漏洞。这适用于查询参数和 POST 数据,但不适用于累积数据。例如,您可以具有 max 参数 * 2 个总参数。

max-post-size

10485760

将接受的 post 的最大大小。

no-request-timeout

60000

容器关闭连接前可以闲置的时长,以毫秒为单位。

proxy-address-forwarding

false

是否启用 x-forwarded-host 和类似的标头,并设置远程 IP 地址和主机名。

proxy-protocol

false

是否使用 PROXY 协议传输连接信息。如果设置为 true,侦听器将使用 PROXY 协议版本 1,如 PROXY 协议版本 1 和 2 规范中所 定义。只有在支持同一协议的负载均衡器后面的监听程序才会启用这个选项。

read-timeout

 

配置套接字的读取超时,以毫秒为单位。如果给定的时间没有成功读取,则套接字的下一个读取将引发 ReadTimeoutException

receive-buffer

 

接收缓冲区的大小。

record-request-start-time

false

是否记录请求的开始时间,以允许记录请求时间。这会对性能产生轻微但可观的影响。

redirect-socket

 

如果此侦听器支持非 SSL 请求,并且收到匹配项需要 SSL 传输的请求,则是否自动将请求重定向到此处指定的套接字绑定端口。

request-parse-timeout

 

解析请求的最长时间,以毫秒为单位。

require-host-http11

false

它要求所有 HTTP/1.1 请求都有一个 Host 标头。如果请求不包含此标头,它将被拒绝,并显示 403 错误。

resolve-peer-address

false

启用主机 DNS 查找。

安全

false

如果 情况如此,源自此侦听器的请求会标记为安全,即使请求没有使用 HTTPS。

send-buffer

 

发送缓冲区大小。

socket-binding

 

侦听器的套接字绑定

tcp-backlog

 

配置具有指定积压的服务器.

tcp-keep-alive

 

将通道配置为以依赖实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL charset.

worker

default

侦听器的 XNIO 工作程序.

write-timeout

 

为套接字配置写入超时,以毫秒为单位。如果给定的时间没有成功写入,则套接字的下一次写入将引发 WriteTimeoutException

https-listener Attributes

表 A.95. https-listener Attributes

属性默认描述

allow-encoded-slash

false

如果请求附带编码的字符,如 %2F,则请求是否将被解码。

allow-equals-in-cookie-value

false

是否允许非转义的 cookie 值中的字符等于字符。未引用的 Cookie 值可能不包含等同字符。如果值在等号之前结束。Cookie 值的其余部分将被丢弃。

allow-unescaped-characters-in-url

false

是否允许 URL 中的非转义字符。如果设置为 true,侦听器会处理包含非转义、非 ASCII 字符的任何 URL。如果设置为 false,侦听器将拒绝包含非转义、非 ASCII 字符且带有 HTTP Bad Request 400 响应代码的任何 URL。

always-set-keep-alive

true

是否会在响应中添加 Connection: keep-alive 标头,即使该规范没有严格要求。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

侦听器的缓冲区池。

certificate-forwarding

false

是否启用证书转发。如果启用此项,侦听器将从 SSL_CLIENT_CERT 属性获取 证书。只有在代理后面时才启用此功能,代理会被配置为始终设置这些标头。

decode-url

true

解析器是否使用选定的字符编码解码 URL 和查询参数,默认为 UTF-8。如果这是误,则不会解码。这将允许后续处理程序将它们解码到所需的任何 charset 中。

disallowed-methods

["TRACE"]

不允许的 HTTP 方法的逗号分隔列表。

enable-http2

false

启用对此监听器的 HTTP/2 支持。

enable-spdy

false

启用对此监听器的 SPDY 支持。弃用:SPDY 已被 HTTP/2 替代。

enabled

true

如果启用了监听程序。弃用:启用的属性可能会导致实施配置一致性出现问题。

enabled-cipher-suites

 

配置已启用的 SSL 密码.弃用:引用 SSLContext 的位置,应使用要支持的加密套件进行配置。

enabled-protocols

 

配置 SSL 协议.弃用:引用 SSLContext 的位置,应使用要支持的加密套件进行配置。

http2-enable-push

true

如果为此连接启用了服务器推送。

http2-header-table-size

4096

用于 HPACK 压缩的标头表的大小(以字节为单位)。此内存量将分配给每个连接以进行压缩。较大的值使用更多内存,但可能会提供更好的压缩。

http2-initial-window-size

65535

流控制窗口大小(以字节为单位),它控制客户端向服务器发送数据的速度。

http2-max-concurrent-streams

 

在单个连接上随时处于活跃状态的 HTTP/2 流的最大数量。

http2-max-frame-size

16384

最大 HTTP/2 帧大小,以字节为单位。

http2-max-header-list-size

 

服务器准备接受的最大请求标头大小。

max-buffered-request-size

16384

缓冲请求的最大大小(以字节请求为单位)通常不会被缓冲,最常见的情况是在对 POST 请求执行 SSL 重新协商时,并且必须完全缓冲后数据才能执行重新协商。

max-connections

 

并发连接的最大数量。如果没有在服务器配置中设置值,则并发连接数的限制为 Integer.MAX_VALUE

max-cookies

100

要解析的最大 Cookie 数。这用于防止哈希漏洞。

max-header-size

1048576

HTTP 请求标头的最大字节大小。

max-headers

200

要解析的最大标头数。这用于防止哈希漏洞。

max-parameters

1000

要解析的参数的最大数量。这用于防止哈希漏洞。这适用于查询参数和 POST 数据,但不适用于累积数据。例如,您可以具有 max 参数 * 2 个总参数。

max-post-size

10485760

将接受的 post 的最大大小。

no-request-timeout

60000

容器关闭连接前可以闲置的时长,以毫秒为单位。

proxy-address-forwarding

false

启用处理 x-forwarded-host 标头和其他 x-forwarded-* 标头,并使用此标头信息设置远程地址。这应该只在设置这些标头的可信代理后面使用,否则远程用户可能会欺骗其 IP 地址。

proxy-protocol

false

是否使用 PROXY 协议传输连接信息。如果设置为 true,侦听器将使用 PROXY 协议版本 1,如 PROXY 协议版本 1 和 2 规范中所 定义。只有在支持同一协议的负载均衡器后面的监听程序才会启用这个选项。

read-timeout

 

配置套接字的读取超时,以毫秒为单位。如果给定的时间没有成功读取,则套接字的下一个读取将引发 ReadTimeoutException

receive-buffer

 

接收缓冲区的大小。

record-request-start-time

false

是否记录请求的开始时间,以允许记录请求时间。这会对性能产生轻微但可观的影响。

request-parse-timeout

 

解析请求的最长时间,以毫秒为单位。

require-host-http11

false

要求所有 HTTP/1.1 请求都具有 'Host' 标头。如果请求不包含此标头,它将使用 403 拒绝。

resolve-peer-address

false

启用主机 DNS 查找。

安全

false

如果 情况如此,源自此侦听器的请求会标记为安全,即使请求没有使用 HTTPS。

security-realm

 

侦听器的安全域.弃用: 使用ssl-context 属性直接引用配置的 SSLContext。

send-buffer

 

发送缓冲区大小。

socket-binding

 

侦听器的套接字绑定.

ssl-context

 

引用此侦听器要使用的 SSLContext。

ssl-session-cache-size

 

活跃 SSL 会话的最大数量.弃用:现在可在 Elytron 安全上下文中配置。

ssl-session-timeout

 

SSL 会话的超时时间,以秒为单位。弃用:现在可在 Elytron 安全上下文中配置。

tcp-backlog

 

配置具有指定积压的服务器.

tcp-keep-alive

 

将通道配置为以依赖实现的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL charset.

verify-client

NOT_REQUESTED

SSL 频道所需的 SSL 客户端身份验证模式.弃用:在引用 SSLContext 时,应当直接为客户端验证模式配置它。

worker

default

侦听器的 XNIO 工作程序.

write-timeout

 

为套接字配置写入超时,以毫秒为单位。如果给定的时间没有成功写入,则套接字的下一次写入将引发 WriteTimeoutException