mirror of
https://github.com/alibaba/higress.git
synced 2026-02-06 15:10:54 +08:00
1002 B
1002 B
功能说明
此插件已经废弃,从1.4版本开始,Higress 从根本上解决了这一问题,不再需要此插件
http2-misdirect插件用于解决网关开启 HTTP2 时,因为浏览器复用连接导致访问出现 404 等问题。
插件原理
HTTP2 协议允许两个不同域名的请求,在域名解析到相同 IP,并且使用了相同证书的情况下,复用同一条连接。这在一些特殊场景会导致复用连接的请求发送给了错误的 Virtual Host 进行处理,从而导致出现 404 等问题。
本插件基于HTTP/2 RFC 7540的9.1.1和9.1.2章节描述,在发现请求 SNI 与当前 Virtual Host 不匹配时,发送 HTTP 421 状态码,强制浏览器新建连接,并根据当前请求域名生成匹配的 SNI,从而让网关能正确处理路由。
浏览器兼容性
Safari 浏览器 15.1 版本以下不支持 HTTP 421 状态码,若有此类客户端访问场景,建议对相应域名关闭 HTTP2 的 ALPN