Что такое IIS в Windows Server?

«Что такое IIS в Windows Server?» — вопрос из категории Веб-серверы и балансировка, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

IIS (Internet Information Services) — это высокопроизводительный, расширяемый веб-сервер от Microsoft, входящий в состав ОС Windows Server. Он используется для размещения веб-сайтов, веб-приложений и REST API.

Основные возможности и компоненты с точки зрения DevOps:

  • Поддержка стеков: Основная платформа для запуска приложений на ASP.NET и ASP.NET Core. Также поддерживает PHP, Node.js через модули.
  • Управление:
    • Графический интерфейс IIS Manager.
    • Полноценное управление через PowerShell (модуль WebAdministration) для автоматизации.
      # Создание нового сайта с помощью PowerShell
      New-Website -Name "MyApp" -Port 8080 -PhysicalPath "C:inetpubMyApp" -ApplicationPool "MyAppPool"
      # Создание и настройка пула приложений
      New-WebAppPool -Name "MyAppPool"
      Set-ItemProperty "IIS:AppPoolsMyAppPool" -Name managedRuntimeVersion -Value "" # Для .NET Core
  • Архитектура: Работает на основе пулов приложений (Application Pools), которые изолируют процессы друг от друга, повышая стабильность и позволяя настраивать удостоверения, версии .NET и режимы перезагрузки.
  • Инфраструктурные функции:
    • Балансировка нагрузки: Может использоваться как обратный прокси с модулем Application Request Routing (ARR) для балансировки между несколькими серверами.
    • Кэширование: Кэширование на уровне выходных данных (Output Caching) и статических файлов.
    • Мониторинг и логи: Детальное журналирование, счётчики производительности (Performance Counters) для интеграции в системы мониторинга.
    • Безопасность: Интеграция с Windows Authentication, поддержка SSL/TLS, фильтрация запросов.

В DevOps-практике IIS часто управляется через код с использованием PowerShell DSC, Ansible или модулей Terraform для обеспечения консистентности конфигурации в разных окружениях.