Открыть сервис

Веб-сервер IIS

Веб-сервер IIS (Internet Information Services, ранее — Internet Information Server) — это проприетарный веб-сервер, разработанный корпорацией Microsoft для операционных систем семейства Windows. Он предназначен для обслуживания HTTP-запросов, публикации веб-сайтов, веб-приложений и служб, а также для обеспечения работы протоколов FTP, SMTP, NNTP и WebSocket. IIS является одним из наиболее распространённых веб-серверов в мире, наряду с Apache HTTP Server и Nginx, и широко используется в корпоративных средах благодаря тесной интеграции с экосистемой Microsoft (Active Directory, ASP.NET, SQL Server, .NET Framework).

История

Первая версия IIS (1.0) была выпущена в 1996 году как компонент Windows NT 4.0. Она представляла собой дополнение к операционной системе и обеспечивала базовые функции веб-сервера.

  • IIS 2.0 (1996) — включал поддержку технологии Active Server Pages (ASP) и улучшенное управление через консоль.
  • IIS 3.0 (1997) — добавил поддержку ASP версии 2.0 и компонентные объекты COM.
  • IIS 4.0 (1998) — стал отдельным продуктом, поставляемым с Windows NT 4.0 Option Pack. Внедрена архитектура на основе изолированных процессов и новый интерфейс управления — Internet Service Manager.
  • IIS 5.0 (2000) — поставлялся с Windows 2000. Включал улучшенную производительность, поддержку SSL 3.0, WebDAV и технологию Application Protection.
  • IIS 5.1 (2001) — версия для Windows XP Professional, с ограниченной функциональностью (ограничение на 10 одновременных подключений).
  • IIS 6.0 (2003) — выпущен с Windows Server 2003. Полностью переработанная архитектура с новым процессом работы (wwwsvc.exe), основанным на пулах приложений (application pools). IIS 6.0 значительно повысил стабильность, безопасность и производительность.
  • IIS 7.0 (2008) — поставлялся с Windows Server 2008 и Windows Vista. Внедрена модульная архитектура, позволяющая включать только необходимые компоненты. Появился новый интерфейс управления — диспетчер IIS (IIS Manager), а также поддержка конфигурации через XML-файлы (Web.config).
  • IIS 7.5 (2009) — версия для Windows Server 2008 R2 и Windows 7. Добавлена поддержка .NET Framework 4.0, улучшена интеграция с PowerShell и поддержка FastCGI.
  • IIS 8.0 (2012) — поставлялся с Windows Server 2012 и Windows 8. Введена поддержка SNI (Server Name Indication), WebSockets и FTP на основе TLS.
  • IIS 8.5 (2013) — версия для Windows Server 2012 R2 и Windows 8.1. Добавлено журналирование на уровне запроса, динамическое сжатие, улучшена работа с виртуальными каталогами.
  • IIS 10.0 (2015) — выпущен с Windows Server 2016 и Windows 10. Включает поддержку HTTP/2, нового механизма управления конфигурациями (IIS Administration), улучшенную интеграцию с контейнерами и Nano Server. Сохраняется в актуальных версиях Windows Server 2022 и Windows 11.

Архитектура

Основные компоненты

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

  • HTTP-ядро (HTTP.sys) — драйвер режима ядра, отвечающий за прием HTTP-запросов, управление очередями и передачу данных в пулы приложений.
  • Служба управления (Windows Process Activation Service, WAS) — управляет жизненным циклом пулов приложений, настройками конфигурации и активацией рабочих процессов.
  • Модули режима пользователя:
  • Модуль статического содержимого (StaticFileModule)
  • Модуль каталогов (DirectoryListingModule)
  • Модуль аутентификации (AnonymousAuthenticationModule, WindowsAuthenticationModule, BasicAuthenticationModule и др.)
  • Модуль сжатия (DynamicCompressionModule, StaticCompressionModule)
  • Модуль переопределения URL (URL Rewrite Module)
  • Модуль CGI (CgiModule)
  • Модуль FastCGI (FastCgiModule)
  • Модуль для ASP.NET (AspNetModule, IsapiModule)

Пул приложений

Важнейшая концепция IIS — пул приложений (application pool). Это изолированная среда выполнения, в которой работает одно или несколько веб-приложений. Каждый пул приложений имеет собственный рабочий процесс (w3wp.exe). Изоляция пулов предотвращает влияние сбоев одного приложения на другие и позволяет независимо настраивать параметры: версию .NET CLR, режим конвейера (классический или интеграционный), учетные данные и политику перезапуска.

Режимы конвейера обработки запросов

IIS поддерживает два режима обработки запросов:

  • Классический режим (Classic Mode) — для совместимости с приложениями, написанными под IIS 6.0. Обработка запросов проходит через два этапа: сначала код ISAPI, затем ASP.NET.
  • Интеграционный режим (Integrated Mode) — единый конвейер объединяет обработку запросов от IIS и ASP.NET. Это позволяет использовать модули ASP.NET для всех типов запросов, не ограничиваясь только страницами .aspx.

Классификация версий

Поставляемые версии IIS можно разделить по целевым платформам:

ВерсияОСКлючевые особенности
5.0Windows 2000Первая стабильная версия с поддержкой WebDAV
6.0Windows Server 2003Архитектура с пулами приложений, улучшенная безопасность
7.0Windows Server 2008 / VistaМодульная архитектура, Web.config, IIS Manager
7.5Windows Server 2008 R2 / 7Поддержка PowerShell, FastCGI, .NET 4.0
8.0Windows Server 2012 / 8SNI, WebSockets, FTP over TLS
8.5Windows Server 2012 R2 / 8.1Журналирование на уровне запроса, динамическое сжатие
10.0Windows Server 2016/2019/2022 / 10/11HTTP/2, контейнеры, Nano Server, улучшенное управление

Применение

Веб-хостинг

IIS широко используется в корпоративных средах для хостинга веб-сайтов и веб-приложений, созданных с использованием технологий Microsoft: ASP.NET, ASP, C#, VB.NET, а также MVC, Web API и SignalR.

Платформа для разработки

Разработчики используют IIS как среду для локального тестирования и отладки веб-приложений. Встроенная поддержка Visual Studio позволяет публиковать проекты напрямую в IIS.

Роль в Microsoft Azure

Облачная платформа Microsoft Azure использует IIS как часть службы App Service (ранее — Azure Websites). Внутри виртуальных машин и инфраструктуры Azure работает адаптированная версия IIS для исполнения пользовательских веб-приложений.

Примеры

  • Корпоративные порталы — SharePoint, Dynamics CRM, Exchange Web Services.
  • Интернет-магазины — на платформе ASP.NET (например, nopCommerce).
  • Административные панели — системы управления контентом (CMS) на .NET: Umbraco, Sitefinity, Orchard.
  • Веб-сервисы — REST API, SOAP-сервисы, WebHooks.

Конфигурирование

IIS поддерживает несколько способов настройки:

  • Графический интерфейс (IIS Manager) — оснастка MMC с древовидной структурой, позволяющая добавлять сайты, пулы приложений, настраивать модули, параметры безопасности, SSL-сертификаты и протоколы.
  • Командная строка (appcmd.exe) — утилита для управления IIS из командной строки или скриптов.
  • Windows PowerShell (IISAdministration) — модуль для автоматизации задач через объектную модель.
  • XML-файлы (Web.config) — иерархическая система конфигурации на уровне приложений, каталогов и файлов. Параметры могут храниться в корневом файле applicationHost.config.

Безопасность

IIS включает встроенные механизмы аутентификации и авторизации:

  • Анонимная аутентификация — используется по умолчанию для публичных сайтов.
  • Базовая аутентификация — передача имени и пароля в открытом виде через HTTP.
  • Аутентификация Windows — на основе протоколов NTLM или Kerberos, обычно применяется в интрасетях.
  • Аутентификация по сертификатам — проверка SSL-сертификатов клиентов.
  • Forms-аутентификация — на основе билетов, управляемая через модуль ASP.NET.
  • Двухфакторная аутентификация — через расширения сторонних производителей или интеграцию с Active Directory.

Также IIS поддерживает ограничение доступа по IP-адресам, использование SSL/TLS (вплоть до TLS 1.3), фильтрацию запросов (Request Filtering) и защиту от распространённых атак (SQL-инъекции, межсайтовый скриптинг).

Производительность

IIS обеспечивает высокую производительность благодаря следующим механизмам:

  • Кэширование — статических файлов, динамических ответов и результирующего HTML.
  • Сжатие — статическое (gzip, deflate) и динамическое.
  • Балансировка нагрузки — встроенная поддержка через Network Load Balancing или внешние устройства.
  • Поддержка HTTP/2 и HTTP/3 — мультиплексирование, сжатие заголовков, серверный пушинг.
  • Оптимизация потоков — управление очередями запросов, ограничение числа одновременных подключений.

Сравнение с другими веб-серверами

ХарактеристикаIISApacheNginx
Операционная системаWindowsLinux, Windows, macOSLinux, Windows, macOS
АрхитектураМодульная, с пулами приложенийМодульная, процесснаяСобытийная, асинхронная
Языки по умолчаниюASP.NET, ASP, C#, VB.NET, PHP (через FastCGI)PHP, Perl, Python, Ruby, JavaPHP, Python, Ruby, Node.js
ЛицензияПроприетарная (поставляется с Windows)Apache 2.0 (свободная)2-х пунктная лицензия BSD
Интерфейс управленияGUI (IIS Manager), командная строка, PowerShell.htaccess, файлы конфигурации, GUI (cPanel, Webmin)Файлы конфигурации, GUI (в сторонних панелях)
Поддержка .NETПолная (встроенный модуль)Через mod_monoЧерез .NET Core (не встроено)
Популярность среди сайтов~10–15%~30–35%~35–40%

Интересные факты

  • IIS был первым веб-сервером, поддерживавшим технологию Active Server Pages (ASP), что дало толчок развитию динамических веб-сайтов на платформе Windows.
  • В версии 6.0 была введена концепция «режима изоляции приложений», которая стала основой современной модульной архитектуры.
  • IIS поддерживает не только HTTP/HTTPS, но и протоколы FTP, FTPS, SMTP, NNTP (почтовые и новостные протоколы), а также WebSocket.
  • Начиная с IIS 7.0, конфигурация осуществляется через XML-файлы, что позволяет использовать системы управления версиями (Git, TFS) для отслеживания изменений.
  • В Microsoft Azure App Service используется упрощённая версия IIS, адаптированная для облачной инфраструктуры.

Критика

Несмотря на широкое распространение, IIS подвергается критике по нескольким аспектам:

  • Привязка к Windows — сервер работает только в среде Microsoft Windows, что ограничивает выбор ОС для хостинга.
  • Сложность конфигурации — для новичков интерфейс IIS Manager может показаться перегруженным, а управление через файлы Web.config менее интуитивно, чем у Apache.
  • Ресурсоёмкость — IIS потребляет больше оперативной памяти по сравнению с лёгкими конкурентами (Nginx, Lighttpd) при обслуживании большого числа статических файлов.
  • История уязвимостей — в ранних версиях (особенно IIS 4.0 и 5.0) было обнаружено множество критических уязвимостей (например, Code Red, Nimda), которые повлияли на репутацию продукта.

Источники

  • Microsoft Docs: Internet Information Services (IIS)
  • История версий IIS – официальная документация Microsoft
  • Сравнение веб-серверов: Netcraft Web Server Survey
  • Документация: HTTP.sys driver – Microsoft
  • IIS Architecture: Application Pools and Worker Processes – Microsoft TechNet
  • Безопасность IIS: обзор аутентификации и авторизации – Microsoft Learn

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →