Назад | Перейти на главную страницу

Могу ли IIS обслуживать мое приложение .NET по протоколу QUIC?

У нас есть супер болтливое (ajax) html 5 приложение (похожее на Gmail по конструкции, тонны js).

Чтение QUIC звучит интересно. https://en.wikipedia.org/wiki/QUIC

Может ли IIS (или любой механизм хостинга .NET) поддерживать QUIC?

Если IIS / Win не может этого сделать, могу ли я сделать это в экземпляре haproxy (в CentOS) перед IIS?

По состоянию на август 2020 года версия IIS присутствует в Windows 10 версии 2004 (2020-04) и Windows Server 2019. делает поддержка QUIC, и кажется, что QUIC включен по умолчанию:

Некоторые оговорки из моих собственных наблюдений:

  • Кажется, что он присутствует только в полнофункциональном IIS, а не в IIS Express (но вы все равно не будете использовать IIS Express в производственной среде).
  • HTTP / 3 (QUIC) и HTTP / 2 (SPDY) кажутся включенными только в привязке HTTPS, а не в привязке HTTP с открытым текстом.
    • Возможно, я ошибаюсь - я не знаком с деталями QUIC.
    • Обратите внимание, что QUIC на самом деле является протоколом довольно низкого уровня, и что «HTTP / 3» можно рассматривать как «HTTP / 2-over-QUIC».
  • Помимо единственного флажка для отключить QUIC на странице настроек привязки, я не вижу другого способа настроить QUIC в IIS.

Что касается распространенного сценария использования IIS в качестве внешнего обратного прокси (с использованием расширения IIS для перезаписи URL и маршрутизации запросов приложений):

  • Я не могу найти любой информация о поддержке QUIC в ARR.
  • Обратите внимание, что расширение URL Rewrite Extension (которое требуется для использования ARR) был недавно обновлен до версии 2.1 в 2017 году после того, как застрял на версии 2.0 почти десять лет. Тебе надо установить его вручную со страницы загрузок IIS.
  • Расширение ARR все еще застряло в версии 3.0, выпущенной в 2013 году.
    • Это заставляет меня думать, что ARR 3.0 не будет поддерживать HTTP / 2 (SPDY) или HTTP / 3 (QUIC), но в то же время ARR использует существующие HTTP.sys стек в Windows, поэтому это действительно возможно что ARR может использовать HTTP / 3 или HTTP / 2, если они доступны. Но без официального слова или совета от инсайдера в Microsoft это невозможно сказать.

Дополнительно, в мае 2020 года Microsoft объявила, что их реализация QUIC с открытым исходным кодом на GitHub: https://github.com/microsoft/msquic - если у вас есть дополнительные вопросы, вы можете получить на них ответы там, а не через официальные каналы поддержки MS или их никогда не обновляющийся блог IIS.

К сожалению, нет, серверы доступны только на платформе Linux.

Вы можете создать обратный прокси-сервер в докере, чтобы добавить совместимость вашему веб-серверу. Ссылка на образ докера: https://hub.docker.com/r/devsisters/quic-reverse-proxy/

Вот страница о сестрах-разработчиках и их реализации quic in go: http://devsisters.github.io/goquic/

Вот информация о сервере в Википедии для чтения: https://en.m.wikipedia.org/wiki/QUIC#Server_support

Надеюсь это поможет!