Iis

IIS 可以通過 QUIC 協議為我的 .NET 應用程序提供服務嗎?

  • February 12, 2021

我們有一個超級健談 (ajax) 的 html 5 應用程序(它的構造類似於 gmail,大量的 js)。

QUIC 的閱讀聽起來很有趣。 https://en.wikipedia.org/wiki/QUIC

IIS(或任何 .NET 託管引擎)能否支持 QUIC?

如果 IIS/Win 做不到,我可以在 IIS 前面的 haproxy 實例(在 CentOS 上)中做嗎?

截至 2020 年 8 月,Windows 10 Version 2004 (2020-04) 和 Windows Server 2019 (version 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.sysWindows 中的現有堆棧,所以實際上ARR 可能使用 HTTP /3 或 HTTP/2(如果可用)。但如果沒有微軟內部人士的官方消息或提示,這是不可能的。

此外,2020 年 5 月,微軟宣布他們的 QUIC 實現在 GitHub 上是開源的https ://github.com/microsoft/msquic - 如果您有任何其他問題,您可以在那里而不是通過 MS 的官方獲得答案支持渠道或他們從未更新的 IIS 部落格。


我確實向 MSQuic GitHub 儲存庫發布了一個問題,以尋求更多關於 QUIC 功能的資訊和文件,但該問題已作為題外話關閉,但他們確實向我保證,他們已將問題轉發給內部文件團隊,但正在做日期範圍的Google搜尋顯示,微軟沒有發布任何新的 QUIC 文件。

引用自:https://serverfault.com/questions/824278