如何在Apache Tomcat 8中禁用HTTP/1.1,仅允许HTTP/2请求?
如何在Apache Tomcat 8中仅保留HTTP/2协议支持,禁用HTTP/1.1
要让Tomcat 8仅处理HTTP/2请求、拒绝HTTP/1.1请求,只需修改conf/server.xml中的连接器配置,具体步骤如下:
- 打开Tomcat安装目录下的
conf/server.xml文件 - 定位到已配置SSL的NIO/NIO2连接器(Tomcat 8中HTTP/2依赖NIO/NIO2且默认要求加密传输)
- 在连接器标签中添加两个关键配置:
http2Protocol="org.apache.coyote.http2.Http2Protocol":启用HTTP/2协议支持allowHttp11="false":明确禁用HTTP/1.1请求处理
修改后的完整连接器示例:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" http2Protocol="org.apache.coyote.http2.Http2Protocol" allowHttp11="false"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector>
说明
allowHttp11="false"会强制连接器拒绝所有HTTP/1.1协议的请求,仅接受HTTP/2请求- 若你使用的是明文HTTP/2(h2c)场景,同样可以添加
allowHttp11="false",但需确保连接器未配置SSL且已启用http2Protocol - 修改完成后重启Tomcat,再次测试即可验证:HTTP/1.1请求会被拒绝,HTTP/2请求可正常获取响应
内容的提问来源于stack exchange,提问作者Максим Казаченко
相关产品推荐
相关产品推荐

