Windows server http server: Windows Server. Настраиваем веб-сервер IIS.

Как установить IIS на Windows Server 2019?

08 сентябрь 2021, Среда

4 327

В статье ниже, будут рассмотрены способы установки веб-сервера Internet Information Services (IIS) на операционной системе Microsoft Windows Server 2019. Существует два основных способа установки IIS на Windows Server.Первый способ традиционный, с помощью графического интерфейса, второй — при помощи PowerShell. Оба метода будут показаны в данной статье.

Для чего нужен IIS

IIS (Internet Information Services) — это встроенный в операционную систему Windows Server набор серверов. В этот набор входят следующие серверы:

  • Web-сервер — является основным и наиболее часто используемым компонентом IIS.
  • FTP-сервер — сервер для обмена файлами
  • SMTP-сервер — сервер отправки почты (устанавливается как Feature, но управляется консолью IIS6) 

Как правило, исходя из целевого назначения используется соответсвующий компонент или их набор IIS.  

Установка IIS Web сервер при помощи PowerShell

Если на сервере не установлен графический интерфейс, необходимо автоматизировать процесс установки или Вы просто хотите использовать самый быстрый способ установки Web сервера IIS, то необходимо:
1. Выполнить вход на сервер с правами администратора
2. Запустить PoweShell от имени администратора 

3. Выполнить команду:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

Результат выполнения команды на скриншоте ниже
IIS Web сервер установлен.

Установка IIS Web сервер через графический интерфейс

1. Выполнить вход на сервер с правами администратора
2. Если автоматически не запустилась консоль Server Manager, то необходимо запустить ее вручную

3. в консоли Server Manager выбрать Manage -> Add Roles and Features

4. Если выполняется установка IIS на единичном локальном сервере, по в появившемся мастере установки ролей, необходимо нажать Next 2 раза. И на данном шаге выбрать установку Web Server (IIS).  
В появившемся всплывающем окне согласиться с установкой IIS Management Console.
5. Если установка выполняется в режиме по умолчанию, то стоит нажать 4 раза Next, а затем Install.
6.Ожидать завершения процесса установки.

В обоих способах установки IIS, после завершения установки, веб сервер запущен и работать по протоколу http, со страницей по умолчанию, как на скриншоте ниже:

Как удалить ранее установленный IIS?

В PowerShell, запущенной от имени администратора,выполнить команду:

Remove-WindowsFeature -Name Web-Server

По завершении удаления web сервера IIS необходимо выполнить перезагрузку сервера

Как установить Web сервер IIS 10 в Windows Server 2016? | Info-Comp.ru

Сегодня мы с Вами научимся устанавливать веб сервер IIS в операционной системе Windows Server 2016 нескольким способами, а именно с помощью графического инструмента и, конечно же, с помощью Windows PowerShell.

Содержание

  1. Что такое IIS 10?
  2. Версии веб сервера IIS
  3. Установка Web сервера IIS 10
  4. Установка веб сервера IIS с помощью мастера
  5. Установка web сервера IIS с помощью Windows PowerShell
  6. Размещаем HTML сайт на веб сервере IIS
  7. Удаление веб сервера IIS с помощью мастера
  8. Удаление web сервера IIS с помощью PowerShell

Что такое IIS 10?

IIS (Internet Information Services) — это набор служб, предназначенный для реализации web сервера в операционной системе Windows с поддержкой сайтов HTML и приложений на ASP.NET или ASP. В Windows Server он распространяется в виде отдельной роли с достаточно большим количеством служб роли. Ранее в материале «Описание и назначение ролей сервера в Windows Server 2016» мы рассмотрели краткое описание всех ролей сервера и их служб, в том числе и роли «Веб-сервер (IIS)» поэтому повторяться сейчас, т.е. описывать каждую из служб роли, я не буду.

В актуальной на данный момент версии серверной операционной системе Windows Server 2016 присутствует также самая новая версия веб сервера, а именно – IIS 10.

Версии веб сервера IIS

Версия IISВерсия операционной системы
10Windows 10; Windows Server 2016
8.5Windows 8.1; Windows Server 2012 R2
8.0Windows 8; Windows Server 2012
7.5Windows 7; Windows Server 2008 R2
7.0Windows Vista; Windows Server 2008
6.0Windows Server 2003
5.1Windows XP Professional
5.0Windows 2000

Установка Web сервера IIS 10

Итак, давайте переходить к рассмотрению процесса установки, и для примера давайте просто установим основные компоненты, которые необходимы для функционирования веб сервера и его администрирования (средства управления), а также разместим на нем простую HTML страничку, т.е. по сути HTML сайт, для проверки работы web сервера. Если Вам необходимо размещать приложения, например на ASP.NET, то Вам необходимо также установить соответствующие службы роли из раздела «Разработка приложений».

Установка веб сервера IIS с помощью мастера

Сначала давайте разберем процесс установки web сервера IIS 10 с помощью «Диспетчера серверов», а конкретней «Мастера добавления ролей и компонентов».

Шаг 1

Открываем диспетчер серверов «Пуск ->Диспетчер серверов».

Затем запускаем «Мастер добавления ролей и компонентов», меню «Управление ->Добавить роли и компоненты».

Шаг 2

Затем жмем «Далее».

Шаг 3

Потом выбираем тип установки «Установка ролей или компонентов», жмем «Далее».

Шаг 4

Затем выбираем целевой сервер и жмем «Далее».

Шаг 5

На шаге выбора ролей отмечаем роль «Веб-сервер (IIS)». Автоматически Вам сразу предложат установить компонент «Консоль управления службами IIS», мы соглашаемся и жмем «Добавить компоненты».

И сразу жмем «Далее».

Шаг 6

Все необходимые компоненты мы уже отметили, поэтому на этом шаге также сразу жмем «Далее».

Шаг 7

Теперь нам необходимо настроить установку роли «Веб-сервер IIS», сначала жмем «Далее».

А потом выбираем необходимые службы роли, по умолчанию минимальное количество служб уже будет выбрано, но если Вам нужно что-то еще, то отмечаете их галочкой. Для нашей тестовой задачи, т.е. разместить простой статический HTML сайт, отмеченных по умолчанию служб будет достаточно, жмем «Далее».

Шаг 8

Проверяем выбранные роли, службы и компоненты и жмем «Установить».


Установка будет завершена, как появится соответствующее сообщение.

Установка web сервера IIS с помощью Windows PowerShell

Для того чтобы установить web сервер IIS с помощью PowerShell запускайте оболочку Windows PowerShell и вводите следующие команды (перечисленные ниже команды установят все те же службы, которые мы установили с помощью мастера чуть выше).

Документ по умолчанию

  
  Install-WindowsFeature -Name "Web-Default-Doc"


Обзор каталога

  
  Install-WindowsFeature -Name "Web-Dir-Browsing"


Ошибки http

  
  Install-WindowsFeature -Name "Web-Http-Errors"


Статическое содержимое

  
  Install-WindowsFeature -Name "Web-Static-Content"


Фильтрация запросов

  
  Install-WindowsFeature -Name "Web-Filtering"


Ведение журнала http

  
  Install-WindowsFeature -Name "Web-Http-Logging"


Сжатие статического содержимого

  
  Install-WindowsFeature -Name "Web-Stat-Compression"


Консоль управления службами IIS

  
  Install-WindowsFeature -Name "Web-Mgmt-Console"


Размещаем HTML сайт на веб сервере IIS

Первое что нужно сделать — это создать корневую директорию нашего тестового сайта, для этого в каталоге С:\inetpub\ создаем папку TestSite и в нее для проверки добавляем файл index. html со следующим содержимым, например

   
  <Н1>Тестовый сайт</Н1>


Затем открываем «Диспетчер служб IIS», это можно сделать, например, из диспетчера серверов «Средства ->Диспетчер служб IIS».

Потом щелкаем правой кнопкой мыши по пункту «Сайты ->Добавить веб-сайт».

Откроется окно добавления веб сайта, заполняем необходимые поля и жмем «ОК» (TestSite в моем случае это название сайта).

Теперь можем проверить работу веб сервера и только что созданного сайта, для этого открываем любой веб браузер и переходим на сайт TestSite (только помните, для того чтобы у Вас также как у меня открылся сайт по имени, он должен быть добавлен на DNS сервере (создана A запись) или хотя бы для тестов добавлена запись в файл HOSTS локального сервера).

Удаление веб сервера IIS с помощью мастера

Для удаления web сервера IIS открываем диспетчер серверов, затем в меню нажимаем «Управление ->Удалить роли и компоненты».

В итоге запустится «Мастер удаления ролей и компонентов», где мы делаем практически то же самое, что и при установке, только галочки мы не ставим, а снимаем.

Затем мы жмем далее, далее и удалить. После окончания процесса удаления веб сервера сервер необходимо будет перезагрузить.

Удаление web сервера IIS с помощью PowerShell

Для удаления web сервера IIS на PowerShell запускаем оболочку Windows PowerShell и используем командлет Uninstall-WindowsFeature. Для удаления следующих служб ролей веб сервера IIS, можно использовать вот такие команды:

Документ по умолчанию

  
  Uninstall-WindowsFeature -Name "Web-Default-Doc"


Обзор каталога

  
  Uninstall-WindowsFeature -Name "Web-Dir-Browsing"


Ошибки http

  
  Uninstall-WindowsFeature -Name "Web-Http-Errors"


Статическое содержимое

  
  Uninstall-WindowsFeature -Name "Web-Static-Content"


Фильтрация запросов

  
  Uninstall-WindowsFeature -Name "Web-Filtering"


Ведение журнала http

  
  Uninstall-WindowsFeature -Name "Web-Http-Logging"


Сжатие статического содержимого

  
  Uninstall-WindowsFeature -Name "Web-Stat-Compression"


Консоль управления службами IIS

  
  Uninstall-WindowsFeature -Name "Web-Mgmt-Console"


Вот мы с Вами и научились устанавливать и удалять web сервер IIS в операционной системе Windows Server 2016 и на этом у меня все, пока!

Обзор веб-сервера IIS

| Microsoft Узнайте

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронное письмо

  • Статья
  • 3 минуты на чтение

от команды IIS, Майка Володарского

Совместимость

Версия Примечания
IIS 7.0 и более поздние версии Функции, описанные в этой статье, были представлены в IIS 7.0.
IIS 6.0 и более ранние версии Функции, описанные в этой статье, не поддерживались до IIS 7.0.

Веб-серверы IIS 7 и более поздних версий имеют полностью модульную архитектуру, обеспечивающую три ключевых преимущества:

  • Компонентизация
  • Расширяемость
  • Интеграция ASP.NET

Компонентизация

Все функции веб-сервера теперь управляются как автономные компоненты, которые можно легко добавлять, удалять и заменять. Это обеспечивает несколько ключевых преимуществ по сравнению с предыдущими версиями IIS:

  1. Защитите сервер, уменьшив зону атаки . Уменьшение площади контакта — один из самых эффективных способов защиты серверной системы. С помощью IIS вы можете удалить все неиспользуемые функции сервера, достигнув минимально возможной площади поверхности, сохранив при этом функциональность вашего приложения.
  2. Повышение производительности и уменьшение объема памяти . Удаляя неиспользуемые функции сервера, вы также можете уменьшить объем используемой сервером памяти и повысить производительность за счет уменьшения объема кода функций, который выполняется при каждом запросе к вашему приложению.
  3. Создание пользовательских / специализированных серверов . Выбрав определенный набор серверных функций, вы можете создавать собственные серверы, оптимизированные для выполнения определенных функций в топологии вашего приложения, таких как пограничное кэширование или балансировка нагрузки. Вы можете добавить пользовательские функции, чтобы расширить или заменить любую существующую функциональность, используя собственные или сторонние серверные компоненты, созданные на основе новых API расширяемости. Компонентная архитектура предоставляет долгосрочные преимущества сообществу IIS: она облегчает разработку новых серверных функций, поскольку они необходимы как внутри Microsoft, так и сторонним разработчикам.

IIS также включает в себя мощную модель активации процессов HTTP, представленную в IIS 6.0, с пулами приложений. Модель активации процесса HTTP доступна не только для веб-приложений, получающих запросы или сообщения по любому протоколу. Эта независимая от протокола служба называется службой активации процессов Windows (WAS). Windows Communication Foundation (WCF) поставляется с адаптерами протоколов, которые могут использовать возможности WAS, повышая надежность и использование ресурсов службами WCF.

Расширяемость

Разработчики могут использовать модульную архитектуру IIS для создания мощных серверных компонентов, расширяющих или заменяющих существующие функции веб-сервера и повышающих ценность веб-приложений, размещенных в IIS.

Вот причины для разработки IIS:

  1. Расширение возможностей веб-приложений . Расширение IIS позволяет веб-приложениям использовать функциональные возможности, которые во многих случаях не могут быть легко реализованы на прикладном уровне. Используя IIS ASP.NET или собственные возможности расширения C++, разработчики могут создавать решения, повышающие ценность всех компонентов приложения, таких как настраиваемые схемы проверки подлинности, мониторинг и ведение журналов, фильтрация безопасности, балансировка нагрузки, перенаправление содержимого и управление состоянием.
  2. Лучший опыт разработки . Совершенно новая модель расширяемости C++ устраняет большинство проблем, которые ранее мешали разработке ISAPI, предлагая упрощенный объектно-ориентированный API, который способствует написанию надежного серверного кода. Кроме того, улучшенная интеграция с Visual Studio еще больше упрощает разработку для IIS.
  3. Используйте все возможности ASP.NET. Интеграция с ASP.NET позволяет быстро разрабатывать серверные модули с помощью знакомых интерфейсов ASP. NET 2.0 и многофункциональных служб приложений ASP.NET. Модули ASP.NET могут единообразно предоставлять службы для ASP, CGI, статических файлов и других типов содержимого и могут полностью расширять сервер без ограничений, присутствующих в предыдущих версиях IIS.

Интеграция с ASP.NET

IIS позволяет веб-приложениям в полной мере использовать мощные функции и расширяемость ASP.NET 2.0. Функции ASP.NET, включая проверку подлинности на основе форм, членство, состояние сеанса и многие другие, можно использовать для всех типов контента, обеспечивая унифицированную работу во всем веб-приложении. Разработчики могут использовать знакомую модель расширяемости ASP.NET и многофункциональные API-интерфейсы .NET для создания функций сервера IIS, столь же мощных, как и те, которые написаны с использованием собственных API-интерфейсов C++.

Воспользуйтесь приведенными ниже ссылками, чтобы начать изучение аспектов настройки IIS, просмотрите лабораторные работы по началу работы и загрузите комплекты с ресурсами, легко доступными на IIS. NET.

Начать обучение

  • Обзор модулей IIS
  • Интеграция ASP.NET с IIS
  • Как воспользоваться преимуществами интегрированного конвейера IIS
  • Пример сквозной расширяемости
  • Создание специализированного сервера
  • Разработка модуля с использованием .NET
  • Разработка собственного (C\C++) модуля

Начало работы

  • Оценочные выпуски Windows Server 2008 R2 и виртуальные лаборатории ( https://www.microsoft.com/server-cloud/windows-server/2008-r2-trial.aspx )

Загрузки

  • Начальный комплект управляемого модуля
  • Начальный комплект собственного модуля (C\C++)

реализаций веб-сервера в ASP.NET Core

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронное письмо

  • Статья
  • 9 минут на чтение

Авторы Tom Dykstra, Steve Smith, Stephen Halter и Chris Ross

Приложение ASP.NET Core работает с внутрипроцессной реализацией HTTP-сервера. Реализация сервера прослушивает HTTP-запросы и передает их приложению в виде набора функций запроса, объединенных в HttpContext.

  • Окна
  • macOS
  • линукс

ASP.NET Core поставляется со следующим:

  • Сервер Kestrel является реализацией межплатформенного HTTP-сервера по умолчанию. Kestrel обеспечивает лучшую производительность и использование памяти, но не имеет некоторых расширенных функций HTTP.sys. Дополнительные сведения см. в разделе Kestrel и HTTP.sys в следующем разделе.
  • HTTP-сервер IIS — это внутрипроцессный сервер для IIS.
  • Сервер HTTP.sys — это HTTP-сервер только для Windows, основанный на драйвере ядра HTTP. sys и API HTTP-сервера.

При использовании IIS или IIS Express приложение запускается либо:

  • В том же процессе, что и рабочий процесс IIS (внутрипроцессная модель размещения) с HTTP-сервером IIS. В процессе — рекомендуемая конфигурация.
  • В процессе, отдельном от рабочего процесса IIS (модель размещения вне процесса) с сервером Kestrel.

Основной модуль ASP.NET — это собственный модуль IIS, который обрабатывает собственные запросы IIS между IIS и внутрипроцессным HTTP-сервером IIS или Kestrel. Дополнительные сведения см. в разделе Основной модуль ASP.NET (ANCM) для IIS.

Пустельга против HTTP.sys

Kestrel имеет следующие преимущества перед HTTP.sys:

  • Повышение производительности и использования памяти.
  • Кроссплатформенный
  • Agility, он разработан и исправлен независимо от ОС.
  • Программный порт и конфигурация TLS
  • Расширяемость, позволяющая использовать такие протоколы, как PPv2, и альтернативные транспорты.

Http.Sys работает как общий компонент режима ядра со следующими функциями, которых нет у пустельги:

  • Совместное использование порта
  • Проверка подлинности Windows в режиме ядра. Kestrel поддерживает только аутентификацию в пользовательском режиме.
  • Быстрое проксирование через очереди передачи
  • Прямая передача файла
  • Кэширование ответов

Хостинг моделей

При использовании внутрипроцессного размещения приложение ASP.NET Core выполняется в том же процессе, что и его рабочий процесс IIS. Размещение внутри процесса обеспечивает более высокую производительность по сравнению с размещением вне процесса, поскольку запросы не передаются через адаптер обратной связи, сетевой интерфейс, который возвращает исходящий сетевой трафик обратно на тот же компьютер. IIS обрабатывает управление процессами с помощью службы активации процессов Windows (WAS).

При размещении вне процесса приложения ASP. NET Core запускаются в процессе, отдельном от рабочего процесса IIS, и модуль обрабатывает управление процессом. Модуль запускает процесс для приложения ASP.NET Core при поступлении первого запроса и перезапускает приложение, если оно завершает работу или дает сбой. По сути, это то же самое поведение, что и с приложениями, которые запускаются в процессе и управляются службой активации процессов Windows (WAS). Использование отдельного процесса также позволяет размещать более одного приложения из одного пула приложений.

Дополнительные сведения и рекомендации по настройке см. в следующих разделах:

  • Хост ASP.NET Core в Windows с IIS
  • Базовый модуль ASP.NET (ANCM) для IIS

Kestrel

Сервер Kestrel — это межплатформенная реализация HTTP-сервера по умолчанию. Kestrel обеспечивает лучшую производительность и использование памяти, но не имеет некоторых расширенных функций HTTP.sys. Дополнительные сведения см. в разделе Kestrel и HTTP.sys в этом документе.

Использовать Kestrel:

  • Сам по себе как пограничный сервер, обрабатывающий запросы напрямую из сети, включая Интернет.

  • С обратным прокси-сервером , например Internet Information Services (IIS), Nginx или Apache. Обратный прокси-сервер получает HTTP-запросы из Интернета и перенаправляет их в Kestrel.

Поддерживается любая конфигурация хостинга — с обратным прокси-сервером или без него.

Руководство по настройке Kestrel и сведения о том, когда использовать Kestrel в конфигурации обратного прокси-сервера, см. в разделе Реализация веб-сервера Kestrel в ASP.NET Core.

  • Окна
  • macOS
  • линукс

ASP.NET Core поставляется со следующим:

  • Сервер Kestrel является межплатформенным HTTP-сервером по умолчанию.
  • Сервер HTTP.sys — это HTTP-сервер только для Windows, основанный на драйвере ядра HTTP. sys и API HTTP-сервера.

При использовании IIS или IIS Express приложение запускается в процессе, отдельном от рабочего процесса IIS ( вне процесса ) с сервером Kestrel.

Поскольку приложения ASP.NET Core выполняются в процессе, отдельном от рабочего процесса IIS, модуль обрабатывает управление процессами. Модуль запускает процесс для приложения ASP.NET Core при поступлении первого запроса и перезапускает приложение, если оно завершает работу или дает сбой. По сути, это то же самое поведение, что и с приложениями, которые запускаются в процессе и управляются службой активации процессов Windows (WAS).

На следующей диаграмме показана взаимосвязь между IIS, основным модулем ASP.NET и приложением, размещенным вне процесса:

Запросы поступают из Интернета к драйверу HTTP.sys режима ядра. Драйвер направляет запросы в IIS через настроенный порт веб-сайта, обычно 80 (HTTP) или 443 (HTTPS). Модуль перенаправляет запросы в Kestrel на случайный порт для приложения, который не является портом 80 или 443.

Модуль указывает порт через переменную среды при запуске, а ПО промежуточного слоя интеграции IIS настраивает сервер для прослушивания http://localhost:{порт} . Выполняются дополнительные проверки, и запросы, исходящие не от модуля, отклоняются. Модуль не поддерживает переадресацию HTTPS, поэтому запросы перенаправляются через HTTP, даже если они получены IIS через HTTPS.

После того, как Kestrel получает запрос от модуля, запрос передается в конвейер ПО промежуточного слоя ASP.NET Core. Конвейер ПО промежуточного слоя обрабатывает запрос и передает его как экземпляр HttpContext в логику приложения. ПО промежуточного слоя, добавленное интеграцией IIS, обновляет схему, удаленный IP-адрес и базу путей для учета переадресации запроса в Kestrel. Ответ приложения передается обратно в IIS, который возвращает его HTTP-клиенту, инициировавшему запрос.

Руководство по настройке модулей IIS и ASP.NET Core см. в следующих разделах:

  • Хост ASP. NET Core в Windows с IIS
  • Базовый модуль ASP.NET (ANCM) для IIS

Nginx с Kestrel

Сведения об использовании Nginx в Linux в качестве обратного прокси-сервера для Kestrel см. в разделе Узел ASP.NET Core в Linux с Nginx.

Apache с Kestrel

Сведения об использовании Apache в Linux в качестве обратного прокси-сервера для Kestrel см. в разделе Узел ASP.NET Core в Linux с Apache.

HTTP.sys

Если приложения ASP.NET Core запускаются в Windows, HTTP.sys является альтернативой Kestrel. Kestrel рекомендуется использовать вместо HTTP.sys, если приложению не требуются функции, недоступные в Kestrel. Дополнительные сведения см. в статье Реализация веб-сервера HTTP.sys в ASP.NET Core.

HTTP.sys также можно использовать для приложений, которые доступны только во внутренней сети.

Руководство по настройке HTTP.sys см. в разделе Реализация веб-сервера HTTP.sys в ASP.NET Core.

Серверная инфраструктура ASP.

NET Core

IApplicationBuilder, доступный в методе Startup.Configure , предоставляет свойство ServerFeatures типа IFeatureCollection. Kestrel и HTTP.sys предоставляют только одну функцию, IServerAddressesFeature, но разные реализации сервера могут предоставлять дополнительные функции.

IServerAddressesFeature можно использовать, чтобы узнать, к какому порту привязана реализация сервера во время выполнения.

Пользовательские серверы

Если встроенные серверы не соответствуют требованиям приложения, можно создать собственную реализацию сервера. В руководстве по открытому веб-интерфейсу для .NET (OWIN) показано, как написать реализацию IServer на основе Nowin. Только интерфейсы функций, которые использует приложение, требуют реализации, хотя должны поддерживаться как минимум IHttpRequestFeature и IHttpResponseFeature.

Запуск сервера

Сервер запускается, когда интегрированная среда разработки (IDE) или редактор запускают приложение:

  • Visual Studio: профили запуска можно использовать для запуска приложения и сервера либо с модулем IIS Express/ASP. NET Core, либо с консолью.
  • Код Visual Studio: приложение и сервер запускаются Omnisharp, который активирует отладчик CoreCLR.
  • Visual Studio для Mac: приложение и сервер запускаются отладчиком Mono Soft-Mode.

При запуске приложения из командной строки в папке проекта dotnet run запускает приложение и сервер (только Kestrel и HTTP.sys). Конфигурация указана -c|--configuration , для которого установлено значение Debug (по умолчанию) или Release .

Файл launchSettings.json обеспечивает конфигурацию при запуске приложения с помощью dotnet run или отладчика, встроенного в инструментарий, например Visual Studio. Если профили запуска присутствуют в файле launchSettings.json , используйте параметр --launch-profile {ИМЯ ПРОФИЛЯ} с командой dotnet run или выберите профиль в Visual Studio. Дополнительные сведения см. в разделе Запуск dotnet и упаковка дистрибутива . NET Core.

Поддержка HTTP/2

HTTP/2 поддерживается ASP.NET Core в следующих сценариях развертывания:

  • Kestrel
    • Операционная система
      • Windows Server 2016/Windows 10 или более поздней версии†
      • Linux с OpenSSL 1.0.2 или новее (например, Ubuntu 16.04 или новее)
      • HTTP/2 будет поддерживаться в macOS в будущем выпуске.
    • Целевая платформа: .NET Core 2.2 или более поздней версии
  • HTTP.sys
    • Windows Server 2016/Windows 10 или более поздней версии
    • Целевая платформа: неприменимо к развертываниям HTTP.sys.
  • IIS (в процессе)
    • Windows Server 2016/Windows 10 или новее; IIS 10 или новее
    • Целевая платформа: .NET Core 2.2 или более поздней версии
  • IIS (вне процесса)
    • Windows Server 2016/Windows 10 или новее; IIS 10 или новее
    • Подключения к общедоступному пограничному серверу используют HTTP/2, но подключение обратного прокси-сервера к Kestrel использует HTTP/1. 1.
    • Целевая платформа: неприменимо к внепроцессным развертываниям IIS.

† Kestrel имеет ограниченную поддержку HTTP/2 в Windows Server 2012 R2 и Windows 8.1. Поддержка ограничена, поскольку список поддерживаемых наборов шифров TLS, доступных в этих операционных системах, ограничен. Для защиты соединений TLS может потребоваться сертификат, созданный с использованием алгоритма цифровой подписи на эллиптических кривых (ECDSA).

  • Пустельга
    • Операционная система
      • Windows Server 2016/Windows 10 или более поздняя версия†
      • Linux с OpenSSL 1.0.2 или новее (например, Ubuntu 16.04 или новее)
      • HTTP/2 будет поддерживаться в macOS в будущем выпуске.
    • Целевая платформа: .NET Core 2.2 или более поздней версии
  • HTTP.sys
    • Windows Server 2016/Windows 10 или новее
    • Целевая платформа: неприменимо к развертываниям HTTP.sys.
  • IIS (в процессе)
    • Windows Server 2016/Windows 10 или новее; IIS 10 или новее
    • Целевая платформа: . NET Core 2.2 или более поздней версии
  • IIS (вне процесса)
    • Windows Server 2016/Windows 10 или новее; IIS 10 или новее
    • Подключения к общедоступному пограничному серверу используют HTTP/2, но подключение обратного прокси-сервера к Kestrel использует HTTP/1.1.
    • Целевая платформа: неприменимо к внепроцессным развертываниям IIS.

† Kestrel имеет ограниченную поддержку HTTP/2 в Windows Server 2012 R2 и Windows 8.1. Поддержка ограничена, поскольку список поддерживаемых наборов шифров TLS, доступных в этих операционных системах, ограничен. Для защиты соединений TLS может потребоваться сертификат, созданный с использованием алгоритма цифровой подписи на эллиптических кривых (ECDSA).

  • HTTP.sys
    • Windows Server 2016/Windows 10 или новее
    • Целевая платформа: неприменимо к развертываниям HTTP.sys.
  • IIS (вне процесса)
    • Windows Server 2016/Windows 10 или новее; IIS 10 или новее
    • Подключения к общедоступному пограничному серверу используют HTTP/2, но подключение обратного прокси-сервера к Kestrel использует HTTP/1.