17.11. 配置 HTTP/2


Undertow 允许使用 HTTP/2 标准,这可以通过压缩标头和通过同一 TCP 连接的多个流来缩短延迟。它还提供在请求资源前将资源推送到客户端的功能,从而加快页面负载。Undertow 也与 SPDY (即到 HTTP/2 的前身)兼容,以支持尚未更新到新规范的客户端。

重要

HTTP/2 只支持 JBoss EAP 7.0 的技术预览,并且仅可用于同时支持 HTTP/2 标准的浏览器。

重要

使用 HTTP/2 要求使用 Java 8,并在类路径上设置 ALPN。这是因为 HTTP/2 需要支持 ALPN 的 TLS 堆栈,该堆栈不由 Java 8 的默认安装提供。

17.11.1. 将 Undertow 配置为使用 HTTP/2

要将 Undertow 配置为使用 HTTP/2,必须执行以下操作:

将 Undertow 配置为使用 HTTPS

请参阅 如何配置服务器安全指南,以便将 Undertow 配置为使用 HTTPS 进行 Web 应用。

注意

可以在不使用 HTTPS 的情况下使用 HTTP/2,换句话说,只有使用 HTTP 升级的普通 HTTP。在这种情况下,您不需要安装 ALPN,且可以在 Undertow 中简单地启用 HTTP/2:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=enable-http2,value=true)
下载 ALPN JAR

首先确定您拥有的 Java 的特定版本。在终端中运行以下命令,以输出已安装的 Java 版本:

java -version

根据您的版本,参考 此页面 以确定从 此页面 下载的 ALPN JAR 的正确版本。例如,如果您正在运行 Java 版本 1.8.0_51,您可以使用 ALPN 版本 8.1.4.v20150727 并下载 alpn-boot-8.1.4.v20150727.jar

将 ALPN JAR 添加到 Boot Classpath

下载 ALPN JAR 的正确版本后,将它复制到 EAP_HOME/bin。您还必须将以下内容添加到 bin/standalone.conf (如果在受管域中运行,则为 bin/domain.conf )将 $JBOSS_HOME$ALPN_VERSION 替换为适当的值。

JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:$JBOSS_HOME/bin/alpn-boot-$ALPN_VERSION.jar"
重要

您必须重启 JBoss EAP 才能使类路径更改生效。

在 HTTPS Listener 中启用 HTTP/2

要在 Undertow 中启用 HTTPS 侦听器以使用 HTTP/2,您必须将 enable-http2 属性设置为 true

/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=enable-http2,value=true)
验证 HTTP/2 是否正在使用

要验证 Undertow 是否使用 HTTP/2,您需要检查来自 Undertow 的标头。使用 https 导航到您的 JBoss EAP 实例,如 https://localhost:8443,并使用浏览器的开发人员工具检查标头。例如 Google Chrome 的一些浏览器会在使用 HTTP/2 时显示 HTTP/2 伪标头(:path:authority:method:scheme),而其他浏览器(如 Firefox 和 Safari)会将标头的状态或版本报告为 HTTP/2.0

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.