我们有一个超级聊天(ajax)html 5 应用程序(其构造类似于 gmail,包含大量 js)。
QUIC 的读起来很有趣。 https://en.wikipedia.org/wiki/QUIC
IIS(或任何 .NET 托管引擎)可以支持 QUIC 吗?
如果 IIS/Win 无法做到这一点,我可以在 IIS 前面的 haproxy 实例(在 CentOS 上)中做到这一点吗?
答案1
截至 2020 年 8 月,Windows 10 版本 2004(2020-04)和 Windows Server 2019(版本 19041)中存在的 IIS 版本做支持QUIC,并且QUIC好像是默认启用的:
根据我的观察,有以下几点需要注意:
- 它似乎只存在于全功能 IIS 中,而不存在于 IIS Express 中(但无论如何您不会在生产中使用 IIS Express)。
- HTTP/3(QUIC)和 HTTP/2(SPDY)似乎仅在 HTTPS 绑定中启用,而不是在纯文本 HTTP 绑定中启用。
- 我可能错了——我不熟悉 QUIC 的细节。
- 请注意,QUIC 实际上是一种相当低级的协议,并且“HTTP/3”可以被认为是“HTTP/2-over-QUIC”。
- 除了单个复选框之外禁用QUIC 在绑定设置页面中,我看不到在 IIS 中配置 QUIC 的任何其他方法。
关于使用 IIS 作为前端反向代理的常见场景(使用 IIS 的 URL 重写扩展和应用程序请求路由):
- 我找不到任何有关 ARR 中对 QUIC 的支持的信息。
- 请注意,URL 重写扩展(使用 ARR 时需要)2017 年已更新至 2.1 版在 2.0 版本停滞了近十年之后。你需要从 IIS 下载页面手动安装。
- ARR 扩展仍然停留在 2013 年发布的 3.0 版本。
- 这让我认为 ARR 3.0 将不支持 HTTP/2 (SPDY) 或 HTTP/3 (QUIC) - 但与此同时,ARR 使用了
HTTP.sys
Windows 中现有的堆栈,因此这确实是可能的ARR 可能会使用 HTTP/3 或 HTTP/2(如果可用)。但是,如果没有官方消息或微软内部人士的提示,就无法确定。
- 这让我认为 ARR 3.0 将不支持 HTTP/2 (SPDY) 或 HTTP/3 (QUIC) - 但与此同时,ARR 使用了
此外,2020 年 5 月,微软宣布其 QUIC 实现在 GitHub 上开源:https://github.com/microsoft/msquic- 如果您有任何其他问题,您可以在那里获得答案,而不是通过 MS 的官方支持渠道或他们从未更新的 IIS 博客。
我确实在 MSQuic GitHub repo 上发布了一个问题,寻求有关 QUIC 功能的更多信息和文档,但该问题已被关闭,因为与主题无关,但他们向我保证已将问题转发给内部文档团队,但进行日期范围的谷歌搜索显示,微软尚未发布有关 QUIC 的新文档。