A.26. Undertow 子系统属性


本参考提供了关于红帽 JBoss Enterprise Application Platform 中 undertow 子系统不同元素的属性的详细信息。

注意

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

Expand
表 A.48. 主要 undertow 属性
属性default描述

default-security-domain

其他

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

default-server

default-server

用于部署的默认服务器。

default-servlet-container

default

用于部署的默认 servlet 容器。

default-virtual-host

default-host

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

instance-id

${jboss.node.name}

集群实例 ID。

obfuscate-session-route

true

instance-id 值是否在服务器路由过程中模糊处理。模糊处理的服务器路由不会在服务器重启后更改,除非 instance-id 值有变化。

启用统计

false

是否启用统计数据。

应用程序安全域属性

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

application-security-domain 属性
Expand
表 A.49. application-security-domain 属性
属性default描述

enable-jacc

false

启用使用 Java 授权合同进行容器的授权。

enable-jaspi

true

为关联的部署启用 {JAAS}。

http-authentication-factory

 

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

integrated-jaspi

true

是否应使用 integrated-jaspi。当在 {JAAS} 身份验证过程中设置为 true 时,从部署引用的 SecurityDomain 加载身份。当设置为 false 时,会创建一个临时身份。

override-deployment-config

false

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

referencing-deployments

 

当前引用此映射的部署。

security-domain

 

部署使用的 SecurityDomain

单点登录属性
Expand
表 A.50. 单点登录属性
属性default描述

client-ssl-context

 

引用用于保护反向通道注销连接的 SSL 上下文。

cookie-name

JSESSIONIDSSO

Cookie 的名称。

credential-reference

 

用于解密私钥条目的凭证引用。

domain

 

要使用的 Cookie 域。

仅 HTTP-only

false

设置 cookie httpOnly 属性。

key-alias

 

用于签名和验证反向通道注销连接的私钥条目的别名。

key-store

 

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

path

/

Cookie 路径.

secure

false

设置 Cookie secure 属性。

缓冲区缓存属性

Expand
表 A.51. buffer-cache 属性
属性default描述

buffer-size

1024

缓冲区的大小。较小的缓冲区可以更有效地使用空间。

buffer-per-region

1024

每个区域的缓冲区数量。

max-regions

10

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

字节缓冲池属性

Expand
表 A.52. byte-buffer-pool 属性
属性default描述

buffer-size

 

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

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

有关此属性的性能调整建议,请参阅 JBoss EAP 性能调整中的 Configuring 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 属性
Expand
表 A.53. Servlet-container 属性
属性default描述

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

是否将标头设置为禁用安全页面的缓存。禁用这可能导致安全问题,因为敏感页面可能会被中间部分缓存。

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 输出流上的清除。在大多数情况下,这些只是因为其他任何原因而只有 hurt 的性能。

max-sessions

 

一次可以处于活跃状态的最大会话数。

active-authentication

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

如果错误页面应该生成具有堆栈追踪的错误。值包括 none仅本地 值。

use-listener-encoding

false

使用监听程序上定义的编码。

MIME-mapping 属性
Expand
表 A.54. MIME-mapping 属性
属性default描述

value

 

此映射的 mime 类型。

crawler-session-management 属性

为 crawler 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
Copy to Clipboard Toggle word wrap
Expand
表 A.55. crawler-session-management 属性
属性default描述

session-timeout

 

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

user-agents

 

用于与 crawler 的用户代理匹配的正则表达式。

JSP 属性
注意

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

/subsystem=undertow/servlet-container=default/setting=jsp:read-resource
Copy to Clipboard Toggle word wrap
Expand
表 A.56. JSP 属性
属性default描述

check-interval

0

使用后台线程检查 Jakarta Server Pages 更新间隔。这对使用文件系统通知 API 处理 Jakarta 服务器页面更改通知的大多数部署没有影响。这只有在文件监视服务被禁用时才会生效。

开发

false

启用开发模式,以便即时重新加载 Jakarta 服务器页面。

disabled

false

启用 Jakarta Server Pages 容器。

display-source-fragment

true

当发生运行时错误时,尝试显示对应的 Jakarta Server Pages 源片段。

dump-smap

false

将 SMAP 数据写入文件。

error-on-use-bean-invalid-class-attribute

false

在 useBean 中使用错误的类时启用错误。

generate-strings-as-char-arrays

false

将 String constants 生成为字符数组。

java-encoding

UTF8

指定用于 Java 源的编码。

keep-generated

true

保留生成的 servlet。

mapped-file

true

映射到 Jakarta 服务器页面源。

modification-test-interval

4

两次测试更新间隔的最小时间,以秒为单位。

optimize-scriptlets

false

如果 Jakarta Server Pages scriptlets 应该进行了优化,以删除字符串串联。

recompile-on-fail

false

在每个请求上重试失败的 Jakarta Server Pages 编译。

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 驱动方式广告 Jakarta Server Pages 引擎。

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
Copy to Clipboard Toggle word wrap
Expand
表 A.57. persistent-sessions 属性
属性default描述

path

 

持久会话数据目录的路径。如果这是 null,则会话将保存在内存中。

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
Copy to Clipboard Toggle word wrap
Expand
表 A.58. session-cookie 属性
属性default描述

注释

 

Cookie 注释.

domain

 

Cookie 域.

仅 HTTP-only

 

Cookie 是否为 http-only。

max-age

 

Cookie 的最长期限。

名称

 

Cookie 的名称。

secure

 

Cookie 是否安全。

Websocket 属性
注意

在使用管理 CLI 管理 websocket 元素时,可在 servlet-container 元素的 设置 下提供。例如:

/subsystem=undertow/servlet-container=default/setting=websockets:read-resource
Copy to Clipboard Toggle word wrap
Expand
表 A.59. Websocket 属性
属性default描述

buffer-pool

default

用于 websocket 部署的缓冲池。

deflater-level

0

配置 DEFLATE 算法的压缩级别。

assign-to-worker

true

回调是否应分配给 worker 线程。如果这是 false,那么它们将在 IO 线程中运行,但必须更谨慎地执行阻止操作。

per-message-deflate

false

启用 websocket 每消息压缩扩展。

worker

default

用于 websocket 部署的 worker。

welcome-file 属性

定义 welcome 文件,没有选项。

过滤属性

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

custom-filter 过滤器
Expand
表 A.60. custom-filter 属性
属性default描述

class-name

 

HttpHandler 类名称.

module

 

可以从中加载 class 的模块名称。

parameters

 

过滤参数。

error-page Filters

错误页面

Expand
表 A.61. error-page 属性
属性default描述

code

 

错误页面代码。

path

 

错误页面路径。

expression-filter 过滤器

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

Expand
表 A.62. expression-filter 属性
属性default描述

expression

 

定义过滤器的表达式。

module

 

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

gzip 过滤器

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

mod-cluster Filters

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

Expand
表 A.63. mod-cluster 属性
属性default描述

advertise-frequency

10000

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

advertise-path

/

mod_cluster 在其中注册的路径。

advertise-protocol

http

使用的协议。

advertise-socket-binding

 

用于公告的多播组。

broken-node-timeout

60000

从表中移除有问题的节点前必须经过的时间长度。

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

ENABLE_BALANCED

确定在会话具有关联性的节点不可用的情况下如何选择故障转移节点的属性。

health-check-interval

10000

健康检查 ping 到后端节点的频率。

http2-enable-push

true

是否为 HTTP/2 连接启用推送。

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 侦听器时,应定义一个用于处理请求的公共 HTTP 侦听器,以及一个绑定到内部网络来处理 mod 集群命令的一个绑定。此套接字绑定应与内部监听程序对应,不应公开访问。

max-ajp-packet-size

8192

AJP 数据包的最大大小(以字节为单位)。增加这将允许 AJP 工作处理具有大量标头的请求和响应。这在负载均衡器和后端服务器之间必须相同。

max-request-time

-1

请求后端节点在被终止前可以花费的最长时间。

max-retries

1

如果请求失败,您可以尝试重试请求的次数。

注意

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

request-queue-size

10

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

security-key

 

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

security-realm

 

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

ssl-context

 

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

use-alias

false

是否执行别名检查。

worker

default

用于发送公告通知的 XNIO worker。

Expand
表 A.64. 负载均衡器属性
属性default描述

max-attempts

 

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

sticky-session

 

如果启用了粘性会话。

sticky-session-cookie

 

会话 Cookie 名称。

sticky-session-force

 

如果这是 true,那么如果请求无法路由到粘性节点,则返回错误,否则它将路由到另一节点。

sticky-session-path

 

粘性会话 Cookie 的路径。

sticky-session-remove

 

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

wait-worker

 

等待可用 worker 的秒数。

load-balancing-group 属性

定义负载平衡组,没有选项。

Expand
表 A.65. 节点属性
属性default描述

别名

 

节点别名。

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。

 

传送到节点的字节数。

Expand
表 A.66. 上下文属性
属性default描述

requests

 

针对此上下文的请求数。

status

 

此上下文的状态。

request-limit 过滤器
Expand
表 A.67. 请求限制属性
属性default描述

max-concurrent-requests

 

并发请求数上限。

queue-size

 

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

response-header Filters

响应标头过滤器允许您添加自定义标头。

Expand
表 A.68. response-header 属性
属性default描述

header-name

 

标头名称。

header-value

 

标头值。

重写过滤器
Expand
表 A.69. 重写属性
属性default描述

重定向

false

重定向是否完成,而不是重写。

target

 

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

处理程序属性

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

文件属性
Expand
表 A.70. 文件属性
属性default描述

cache-buffer-size

1024

缓冲区的大小。

cache-buffers

1024

缓冲区数量。

case-sensitive

true

是否使用区分大小写的文件处理。请注意,如果底层文件系统不区分大小写,则设为 false 才起作用。

directory-listing

false

是否启用目录列表。

follow-symlink

false

是否启用以下符号链接:

path

 

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

safe-symlink-paths

 

可以作为符号链接目标的路径。

将 WebDAV 用于静态资源

最初,JBoss EAP 使用 JBoss Web 子系统,WebDAV 可以通过 WebdavServlet 来托管静态资源,并启用用于访问和操作文件的额外 HTTP 方法。随着 Undertow 充当 JBoss EAP 8.0 中的集成 Web 层,子系统现在提供通过文件处理程序提供静态文件的机制。但是,它不包括 WebDAV 支持。如果您需要 WebDAV 功能,请考虑为您的 JBoss EAP 8.0 环境实施自定义 WebDAV servlet。

reverse-proxy 属性

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

Expand
表 A.71. reverse-proxy 属性
属性default描述

cache-connections-per-thread

5

无限期保留的连接数量。

connection-idle-timeout

60

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

connections-per-thread

40

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

max-request-time

-1

代理请求在被终止前可以处于活跃状态的最长时间。默认值为 unlimited。

max-retries

1

如果请求失败,将发出尝试重试请求的次数。

注意

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

problem-server-retry

30

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

request-queue-size

10

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

session-cookie-names

JSESSIONID

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

Expand
表 A.72. 主机属性
属性default描述

enable-http2

false

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

instance-id

 

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

outbound-socket-binding

 

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

path

/

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

scheme

http

使用的方案类型。

security-realm

 

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

ssl-context

 

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

服务器属性

服务器组件具有以下结构:

服务器属性
Expand
表 A.73. 服务器属性
属性default描述

default-host

default-host

服务器的默认虚拟主机。

servlet-container

default

服务器的默认 servlet 容器。

AJP-listener 属性
Expand
表 A.74. AJP-listener 属性
属性default描述

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 字符的 URL (带有 HTTP Bad Request 400 响应代码)。

always-set-keep-alive

true

Connection: keep-alive 标头会添加到响应中,即使规格不严格要求也是如此。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

AJP 侦听器的缓冲区池。

decode-url

true

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

disallowed-methods

["TRACE"]

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

enabled

true

如果启用了监听程序。deprecated: Enabled 属性可能会导致配置一致性强制出现问题。

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

接受后的最大大小

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 请求中获取。

secure

false

如果这是 true,则源自此侦听器的请求将标记为安全,即使请求不使用 HTTPS。

send-buffer

 

发送缓冲区大小。

socket-binding

 

AJP 侦听器的套接字绑定.

tcp-backlog

 

使用指定的积压配置服务器。

tcp-keep-alive

 

配置通道以独立于实施的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL charset。

worker

default

侦听器的 XNIO worker。

write-timeout

 

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

主机属性
Expand
表 A.75. 主机属性
属性default描述

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 属性
Expand
表 A.76. filter-ref 属性
属性default描述

predicate

 

谓词提供了一种基于交换的 true/false 决策的简单方法。许多处理程序都要求有条件地应用它们,而 predicates 则提供指定条件的常规方法。

priority

1

定义过滤器顺序。较低数字指示服务器之前包含在处理程序链中,而不是同一上下文以上的其他数字。值范围为 1,表示将首先处理过滤器,再到 2147483647,导致过滤器被最后处理。

位置属性
Expand
表 A.77. 位置属性
属性default描述

handler

 

此位置的默认处理程序。

filter-ref 属性
Expand
表 A.78. filter-ref 属性
属性default描述

predicate

 

谓词提供了一种基于交换的 true/false 决策的简单方法。许多处理程序都要求有条件地应用它们,而 predicates 则提供指定条件的常规方法。

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
Copy to Clipboard Toggle word wrap
Expand
表 A.79. access-log 属性
属性default描述

目录

${jboss.server.log.dir}

用于保存日志的目录。

Extended

false

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

pattern

Common

访问日志模式。有关此属性可用选项的详细信息,请参阅 JBoss EAP 开发指南中的 Provided Undertow Handlers

注意

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

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=record-request-start-time,value=true)
Copy to Clipboard Toggle word wrap

predicate

 

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

prefix

access_log。

日志文件名称的前缀。

relative-to

 

路径相对的目录。

rotate

true

是否每天轮转访问日志。

suffix

log

日志文件名称的后缀。

use-server-log

false

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

worker

default

用于日志记录的 worker 名称。

console-access-log 属性
Expand
表 A.80. console-access-log 属性
属性default描述

属性

{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 属性
Expand
表 A.81. http-invoker 属性
属性default描述

http-authentication-factory

 

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

path

wildfly-services

安装服务的路径。

security-realm

 

用于身份验证的旧安全域。

单点登录属性
注意

在使用管理 CLI 管理 单注册 元素时,它可在 host 元素的设置 下使用。例如:

/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
Copy to Clipboard Toggle word wrap
重要

默认情况下,在 JBoss EAP 8.0 中运行 ha 配置文件时,每个主机都维护自己的 Infinispan 缓存来存储会话和 SSO cookie 信息。此缓存基于 web 缓存容器的默认缓存。JBoss EAP 还管理所有主机中的身份验证详情传播,确保整个集群中的一致会话和单点登录数据。

Expand
表 A.82. 单点登录属性
属性default描述

cookie-name

JSESSIONIDSSO

Cookie 的名称。

domain

 

要使用的 Cookie 域。

仅 HTTP-only

false

设置 cookie httpOnly 属性。

path

/

Cookie 路径.

secure

false

设置 Cookie secure 属性。

http-listener 属性
Expand
表 A.83. http-listener 属性
属性default描述

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 字符的 URL (带有 HTTP Bad Request 400 响应代码)。

always-set-keep-alive

true

是否将 'Connection: keep-alive' 标头添加到响应中,即使规格不严格要求也是如此。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

侦听器的缓冲池。

证书转发

false

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

decode-url

true

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

disallowed-methods

["TRACE"]

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

enable-http2

false

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

enabled

true

是否启用监听程序。deprecated: Enabled 属性可能会导致配置一致性强制出现问题。

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

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

max-connections

 

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

max-cookies

200

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

max-header-size

1048576

HTTP 请求标头的最大大小(以字节为单位)。

max-headers

200

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

max-parameters

1000

将要解析的最大参数数。这用于防止哈希漏洞。这适用于查询参数和 POST 数据,但不适用于累积数据。因此,您可能会有 max parameters * 2 total parameters).

max-post-size

10485760

将接受的发布的最大大小。

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 查找。

secure

false

如果这是 true,则源自此侦听器的请求将标记为安全,即使请求不使用 HTTPS。

send-buffer

 

发送缓冲区大小。

socket-binding

 

侦听器的套接字绑定

tcp-backlog

 

使用指定的积压配置服务器。

tcp-keep-alive

 

配置通道以独立于实施的方式发送 TCP keep-alive 消息。

url-charset

UTF-8

URL charset。

worker

default

侦听器的 XNIO worker。

write-timeout

 

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

https-listener 属性
Expand
表 A.84. https-listener 属性
属性default描述

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 字符的 URL (带有 HTTP Bad Request 400 响应代码)。

always-set-keep-alive

true

Connection: keep-alive 标头会添加到响应中,即使规格不严格要求也是如此。

buffer-pipelined-data

false

是否缓冲管道请求。

buffer-pool

default

侦听器的缓冲池。

证书转发

false

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

decode-url

true

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

disallowed-methods

["TRACE"]

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

enable-http2

false

为此监听程序启用 HTTP/2 支持。

enable-spdy

false

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

enabled

true

如果启用了监听程序。deprecated: Enabled 属性可能会导致配置一致性强制出现问题。

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

缓冲请求的最大大小(以字节为单位Request)通常不会被缓冲,最常见的情况是在为 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

将接受的发布的最大大小。

no-request-timeout

60000

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

proxy-address-forwarding

false

启用处理 x-forwarded-host 标头和其他 x-forwardederializer 标头,并使用此标头信息来设置远程地址。这应该只在设置这些标头的可信代理后面使用,否则远程用户才能欺骗其 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 查找。

secure

false

如果这是 true,则源自此侦听器的请求将标记为安全,即使请求不使用 HTTPS。

security-realm

 

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

send-buffer

 

发送缓冲区大小。

socket-binding

 

侦听器的套接字绑定。

ssl-context

 

引用此监听器使用的 SSLContext。

ssl-session-cache-size

 

活跃的 SSL 会话的最大数量。deprecated :现在可以在 Elytron 安全上下文上配置。

ssl-session-timeout

 

SSL 会话的超时时间(以秒为单位)。deprecated :现在可以在 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 worker。

write-timeout

 

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat