Skip to content

📄 Internet Information Services (IIS)

1. Общее описание

Internet Information Services (IIS) — это гибкий и мощный веб-сервер, предоставляемый Microsoft, предназначенный для разработки, тестирования и развертывания веб-приложений на платформе Windows. IIS поддерживает различные протоколы, такие как HTTP, HTTPS, FTP, SMTP, NNTP и другие, что делает его универсальным решением для хостинга веб-контента.


2. Основные компоненты IIS

2.1. Веб-сервер (HTTP)

  • Предоставляет возможность обслуживания статического и динамического контента.
  • Поддерживает ASP.NET, PHP, CGI, ISAPI и другие технологии.

2.2. Менеджер служб IIS (IIS Manager)

  • Графический интерфейс управления сервером.
  • Позволяет управлять сайтами, приложениями, пулами приложений, модулями, сертификатами и т.д.

2.3. Пулы приложений (Application Pools)

  • Контейнеры для одного или нескольких веб-приложений.
  • Используются для изоляции приложений друг от друга с точки зрения ресурсов и безопасности.
  • Можно настраивать параметры времени жизни, перезапуска, ограничений памяти и CPU.

2.4. Сайты и приложения

  • Сайт — логическая единица, связанная с определенным доменом или IP-адресом/портом.
  • Приложение — часть сайта, имеющая собственную конфигурацию и пулы приложений.

2.5. Диспетчер перезапуска приложений (AppInit)

  • Позволяет выполнять предварительную загрузку приложений перед их первым запросом.
  • Уменьшает время ответа на первый запрос.

3. Архитектура IIS

3.1. Ядро IIS (HTTP.SYS)

  • Является драйвером ядра Windows.
  • Принимает входящие HTTP-запросы, кэширует статический контент, фильтрует трафик.

3.2. Рабочий процесс (W3WP.exe)

  • Выполняет обработку динамических запросов.
  • Запускается для каждого пула приложений.

3.3. Модули IIS

  • Расширяемая архитектура позволяет добавлять функциональность через встроенные и пользовательские модули.
  • Примеры: URL Rewrite, Dynamic Content Compression, Authentication Modules, ARR (Application Request Routing).

4. Поддерживаемые технологии

Технология Поддержка
ASP.NET Полная поддержка (Core, Framework)
PHP Поддерживается через FastCGI
Python Поддерживается через WSGI и FastCGI
Node.js Поддерживается через iisnode (плагин)
CGI / FastCGI Да
WebSocket Да
WebDAV Да
REST / SOAP Да

5. Безопасность в IIS

5.1. Аутентификация

  • Анонимная
  • Windows Authentication (NTLM, Kerberos)
  • Basic Authentication
  • Digest Authentication
  • Forms Authentication (через ASP.NET)
  • OAuth / JWT (через модули или middleware)

5.2. Шифрование

  • Поддержка SSL/TLS через HTTPS.
  • Настройка сертификатов через IIS Manager.
  • Поддержка SNI (Server Name Indication).

5.3. Ограничение доступа

  • IP-ограничения
  • Ограничения по имени хоста
  • URL Authorization
  • Request Filtering (фильтрация методов, заголовков, строк запроса)

6. Управление и мониторинг

6.1. Инструменты управления

  • IIS Manager (inetmgr.msc)
  • PowerShell (IISAdministration, WebAdministration)
  • AppCmd.exe
  • Configuration Editor

6.2. Логирование

  • W3C-логи (по умолчанию).
  • Поддержка центрального логирования (Centralized Logging).
  • Экспорт логов в файлы, базы данных, внешние системы.

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

  • Динамическое и статическое сжатие.
  • Кэширование вывода.
  • Поддержка Output Caching Module.
  • Load balancing через ARR + Application Request Routing.

7. Развертывание и интеграция

7.1. Web Deploy (MSDeploy)

  • Инструмент для синхронизации, резервного копирования и развертывания сайтов.
  • Поддерживает автоматизацию и CI/CD.

7.2. Azure Integration

  • Поддержка облачных веб-приложений Azure App Service.
  • Возможность развертывания в Azure через ARM-шаблоны, DevOps.

7.3. Docker

  • IIS может быть запущен внутри контейнера Windows.
  • Подходит для микросервисной архитектуры.

8. Версии IIS

Версия Windows Версия IIS Особенности
Windows XP / Server 2003 IIS 5.1 / 6.0 Базовая функциональность
Windows Vista / Server 2008 IIS 7.0 Новый модульный дизайн
Windows 7 / Server 2008 R2 IIS 7.5 Улучшения в управлении
Windows 8 / Server 2012 IIS 8.0 Поддержка множественных IP, SNI
Windows 8.1 / Server 2012 R2 IIS 8.5 Поддержка Dynamic Hostable Web Core
Windows 10 / Server 2016–2022 IIS 10.0 Поддержка HTTP/2, улучшенная интеграция с .NET Core, контейнеры

9. Конфигурационные файлы

9.1. applicationHost.config

  • Главный файл конфигурации IIS.
  • Расположен в %windir%\system32\inetsrv\config\applicationHost.config.

9.2. web.config

  • Файл конфигурации на уровне сайта или приложения.
  • Может содержать настройки аутентификации, авторизации, обработчиков, модулей, подключений к БД и т.д.

10. Полезные ссылки


11. Примеры команд PowerShell

# Установка IIS
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

# Перезапуск сайта
Restart-IISSite -Name "Default Web Site"

# Получение списка пулов приложений
Get-IISAppPool

# Остановка пула приложений
Stop-IISAppPool -Name "MyAppPool"

# Создание нового сайта
New-IISSite -Name "MySite" -Port 8080 -HostHeader mysite.local -PhysicalPath "C:\inetpub\mysite"

12. Рекомендации по производительности

  • Использовать статическое и динамическое сжатие.
  • Настроить кэширование вывода (<caching> в web.config).
  • Избегать частых перезапусков пулов приложений.
  • Использовать Application Initialization для "прогрева" приложений.
  • Отслеживать использование ресурсов через Performance Monitor.

13. Рекомендации по безопасности

  • Отключать ненужные модули и протоколы.
  • Использовать HTTPS с современными шифрами.
  • Регулярно обновлять Windows и IIS.
  • Настроить строгие политики доступа и аутентификации.
  • Использовать Web Application Firewall (например, Azure WAF или ModSecurity).