Internet Information Services
Internet Information Services (IIS, произносится «ай-ай-эс») — это проприетарный набор веб-серверов и модулей для расширения функциональности веб-сервера, разработанный корпорацией Microsoft для операционных систем семейства Windows. IIS является вторым по популярности веб-сервером в мире после Apache HTTP Server, занимая значительную долю рынка, особенно в корпоративном сегменте и средах, использующих технологии Microsoft .NET и ASP.NET.
История
Первая версия IIS была выпущена в 1996 году как часть операционной системы Windows NT 4.0. Изначально IIS представлял собой простой веб-сервер с поддержкой HTTP, FTP и Gopher. С выходом Windows NT 4.0 Option Pack в 1997 году появилась версия IIS 3.0, которая включала поддержку Active Server Pages (ASP) — технологии для создания динамических веб-страниц.
В 2000 году с выходом Windows 2000 Server была представлена версия IIS 5.0, которая стала более стабильной и безопасной. Она включала поддержку протокола WebDAV и улучшенное управление через оснастку Internet Services Manager.
Версия IIS 6.0, выпущенная в 2003 году в составе Windows Server 2003, стала значительным шагом вперёд. Она представила новую архитектуру на основе рабочих процессов (worker processes) и пулов приложений (application pools), что повысило надёжность и изоляцию приложений. IIS 6.0 также включала встроенную поддержку IPv6 и улучшенную безопасность.
Версия IIS 7.0, выпущенная в 2008 году в составе Windows Server 2008 и Windows Vista, представила модульную архитектуру. Это позволило администраторам включать только необходимые компоненты, уменьшая поверхность атаки и улучшая производительность. IIS 7.0 также включал новый интерфейс управления — IIS Manager, основанный на консоли управления (MMC).
Версия IIS 8.0, выпущенная в 2012 году в составе Windows Server 2012 и Windows 8, добавила поддержку протокола WebSocket, сжатие динамического контента и улучшенную интеграцию с ASP.NET. IIS 8.5, выпущенная в 2013 году в составе Windows Server 2012 R2, представила функцию «Idle Worker Process Page-Out» для экономии памяти.
Версия IIS 10.0, выпущенная в 2016 году в составе Windows Server 2016 и Windows 10, добавила поддержку HTTP/2, улучшенную интеграцию с PowerShell и новые возможности для управления контейнерами. Последующие обновления, входящие в состав Windows Server 2019 и Windows Server 2022, продолжали улучшать производительность и безопасность, включая поддержку HTTP/3 и QUIC.
Архитектура и компоненты
IIS построен на модульной архитектуре, где каждый компонент (модуль) отвечает за определённую функцию. Основные модули включают:
- HTTP.sys — драйвер режима ядра, который обрабатывает HTTP-запросы и ответы. Он отвечает за приём входящих запросов, кэширование и управление очередями.
- World Wide Web Publishing Service (W3SVC) — служба, управляющая пулами приложений и рабочими процессами.
- Windows Process Activation Service (WAS) — служба, отвечающая за активацию и управление рабочими процессами для приложений, использующих протоколы, отличные от HTTP (например, Net.Tcp).
Пулы приложений
Пулы приложений (application pools) — это ключевая концепция IIS, обеспечивающая изоляцию между веб-приложениями. Каждый пул приложений работает в отдельном рабочем процессе (w3wp.exe), что предотвращает влияние сбоев одного приложения на другие. Администраторы могут настраивать параметры пулов, такие как время ожидания, максимальное количество рабочих процессов и перезапуск по расписанию.
Модули
IIS включает множество модулей, которые можно включать или отключать по необходимости. Основные модули:
- StaticFileModule — обслуживание статических файлов (HTML, CSS, JavaScript, изображения).
- DefaultDocumentModule — автоматическое отображение файла по умолчанию (например, index.html или default.aspx).
- DirectoryListingModule — отображение содержимого каталога при отсутствии файла по умолчанию.
- Authentication — модули аутентификации: Anonymous, Basic, Digest, Windows, Forms и Client Certificate Mapping.
- URL Rewrite Module — переписывание URL-адресов для создания дружественных ссылок и редиректов.
- Dynamic Compression Module — сжатие динамического контента (например, ASP.NET-страниц) перед отправкой клиенту.
- WebSocket Module — поддержка протокола WebSocket для двусторонней связи в реальном времени.
Версии и совместимость
IIS поставляется в составе операционных систем Windows. Основные версии и их совместимость:
| Версия IIS | Операционная система | Ключевые особенности |
|---|---|---|
| 1.0–3.0 | Windows NT 4.0 | ASP, FTP, Gopher |
| 4.0 | Windows NT 4.0 Option Pack | Улучшенная безопасность, поддержка SSL |
| 5.0 | Windows 2000 | WebDAV, улучшенное управление |
| 5.1 | Windows XP Professional | Поддержка до 10 одновременных подключений |
| 6.0 | Windows Server 2003, Windows XP Professional x64 | Пулы приложений, IPv6, улучшенная безопасность |
| 7.0 | Windows Server 2008, Windows Vista | Модульная архитектура, IIS Manager |
| 7.5 | Windows Server 2008 R2, Windows 7 | Поддержка ASP.NET 4.0, улучшенная производительность |
| 8.0 | Windows Server 2012, Windows 8 | WebSocket, сжатие динамического контента |
| 8.5 | Windows Server 2012 R2, Windows 8.1 | Idle Worker Process Page-Out |
| 10.0 | Windows Server 2016, Windows 10 | HTTP/2, улучшенная интеграция с PowerShell |
| 10.0 v1809+ | Windows Server 2019, Windows 10 1809 | HTTP/3, поддержка контейнеров |
| 10.0 v2004+ | Windows Server 2022, Windows 11 | QUIC, улучшенная безопасность |
Применение
IIS широко используется в корпоративной среде для хостинга веб-приложений, написанных на ASP.NET, ASP.NET Core, PHP и других языках. Он также используется для хостинга веб-сервисов, FTP-серверов и приложений, требующих интеграции с Active Directory.
Веб-приложения
IIS является основным веб-сервером для приложений, использующих технологии Microsoft .NET. Он обеспечивает полную интеграцию с ASP.NET, включая управление сессиями, аутентификацию через Windows Authentication и Forms Authentication, а также поддержку Web Forms, MVC и Web API.
FTP-сервер
IIS включает встроенный FTP-сервер, который поддерживает как обычный FTP, так и FTP over SSL (FTPS). Это позволяет безопасно передавать файлы между клиентами и сервером.
Почтовые серверы
IIS может использоваться в сочетании с SMTP-сервером для отправки электронной почты из веб-приложений, хотя для полноценного почтового сервера обычно используется Microsoft Exchange Server.
Безопасность
IIS включает множество механизмов безопасности:
- Аутентификация — поддержка различных методов аутентификации, включая Windows Authentication, Basic Authentication и Client Certificate Mapping.
- Авторизация — управление доступом к ресурсам на основе URL-адресов, IP-адресов и ролей.
- SSL/TLS — поддержка HTTPS с использованием сертификатов.
- Request Filtering — фильтрация входящих запросов для предотвращения атак (например, SQL-инъекций и межсайтового скриптинга).
- IP and Domain Restrictions — ограничение доступа по IP-адресам и доменным именам.
Инструменты управления
Для управления IIS используются несколько инструментов:
- IIS Manager — графическая консоль управления, доступная через оснастку MMC.
- PowerShell — модуль WebAdministration для автоматизации задач управления через командную строку.
- AppCmd.exe — утилита командной строки для управления IIS.
- Configuration Editor — инструмент для редактирования конфигурационных файлов XML.
Критика
IIS подвергается критике за несколько аспектов:
- Закрытость — IIS является проприетарным продуктом, что ограничивает его использование в средах с открытым исходным кодом.
- Зависимость от Windows — IIS работает только на операционных системах Windows, что ограничивает его применение в кросс-платформенных средах.
- Сложность конфигурации — настройка IIS может быть сложной для новичков, особенно при работе с модулями и пулами приложений.
- Производительность — в некоторых сценариях IIS уступает по производительности Apache или Nginx, особенно при обработке статического контента.
Интересные факты
- IIS является одним из старейших веб-серверов, непрерывно развивающихся с 1996 года.
- IIS 6.0 был первым веб-сервером, получившим сертификацию Common Criteria EAL4+.
- В IIS 10.0 была добавлена поддержка HTTP/2, а в последующих версиях — HTTP/3 и QUIC.
- IIS используется для хостинга многих крупных корпоративных веб-сайтов и приложений, включая Microsoft.com и Bing.
Источники
- Microsoft Docs: Internet Information Services (IIS)
- Wikipedia: Internet Information Services
- IIS.NET: The Official Microsoft IIS Site
- TechNet: IIS 10.0 Overview
- «IIS 7.0: The Complete Reference» by William R. Stanek
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →