Как настроить веб-сервер IIS в Windows 11

iis windows 11 настройка keytrust24.store

IIS (Internet Information Services) — встроенный веб-сервер Microsoft, доступный в Windows 10/11 Pro и Enterprise. Он дает возможность размещать сайты и веб-приложения локально для разработки и тестирования или в небольшой корпоративной сети. IIS поддерживает ASP.NET, PHP, статические сайты и работает как полноценный production-сервер. Подробнее о настройке брандмауэра при работе с IIS читайте в нашем блоге.

Главное:

  • IIS доступен в Windows 10/11 Pro и Enterprise как дополнительный компонент Windows
  • Поддерживает ASP.NET Core, ASP.NET Framework, PHP и статические HTML-сайты
  • Управление через графическую консоль IIS Manager или PowerShell модуль WebAdministration
  • Для HTTPS требуется SSL-сертификат — можно использовать самоподписанный для разработки

Установка IIS через компоненты Windows

IIS не установлен в Windows по умолчанию. Его нужно включить через «Компоненты Windows» или через PowerShell.

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

  1. Откройте Панель управления — Программы — Включение или отключение компонентов Windows
  2. Найдите «Службы IIS» (Internet Information Services)
  3. Раскройте узел и выберите нужные компоненты:
  • Веб-служба — основной веб-сервер
  • Средства веб-управления — консоль IIS Manager
  • Общие компоненты HTTP — статический контент, документ по умолчанию, просмотр каталогов
  • Разработка приложений — ASP.NET, CGI, ISAPI
  • Безопасность — базовая проверка подлинности, Windows Auth

Установка через PowerShell (все основные компоненты):

Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole,IIS-WebServer,IIS-CommonHttpFeatures,IIS-HttpErrors,IIS-HttpRedirect,IIS-ApplicationDevelopment,IIS-NetFxExtensibility45,IIS-HealthAndDiagnostics,IIS-HttpLogging,IIS-Security,IIS-RequestFiltering,IIS-Performance,IIS-WebServerManagementTools,IIS-ManagementConsole,IIS-BasicAuthentication,IIS-WindowsAuthentication,IIS-StaticContent,IIS-DefaultDocument,IIS-DirectoryBrowsing -All

После установки откройте браузер и перейдите на http://localhost — должна открыться стандартная страница IIS. Лицензионная Windows Pro из нашего каталоге Windows включает полный набор компонентов IIS.

Создание нового сайта в IIS Manager

По умолчанию IIS создает один сайт «Default Web Site» на порту 80. Для размещения нескольких сайтов создайте отдельные сайты с разными портами или именами хостов.

Создание нового сайта:

  1. Откройте IIS Manager: в поиске введите «inetmgr» или Диспетчер серверов — Средства — Диспетчер служб IIS
  2. В левой панели разверните сервер и щелкните правой кнопкой «Сайты»
  3. Выберите «Добавить веб-сайт»
  4. Заполните поля:
  • Имя сайта — понятное название (например mysite.local)
  • Пул приложений — выберите существующий или создайте новый
  • Физический путь — папка с файлами сайта (например C:\inetpub\mysite)
  • Привязка — протокол (http/https), IP-адрес (или *), порт (80, 8080 и т.д.), имя хоста

Создание сайта через PowerShell:

Import-Module WebAdministration

# Создать папку сайта
New-Item -Path "C:inetpubmysite" -ItemType Directory -Force

# Создать сайт
New-Website -Name "MySite" -PhysicalPath "C:inetpubmysite" -Port 8080 -Force

# Создать пул приложений
New-WebAppPool -Name "MySitePool"

# Привязать сайт к пулу
Set-ItemProperty -Path "IIS:SitesMySite" -Name applicationPool -Value "MySitePool"

После создания разместите файлы сайта в указанной физической папке и откройте сайт в браузере по адресу http://localhost:8080.

Настройка HTTPS и SSL-сертификатов

Для работы HTTPS нужен SSL-сертификат. В разработке используют самоподписанный сертификат, в production — сертификат от доверенного центра.

Создание самоподписанного сертификата в IIS Manager:

  1. В IIS Manager выберите сервер (корневой узел)
  2. В центральной панели откройте «Сертификаты сервера»
  3. В правой панели нажмите «Создать самозаверяющий сертификат»
  4. Введите понятное имя (например localhost-dev)
  5. Выберите хранилище «Личное» и нажмите OK

Добавление HTTPS-привязки к сайту:

  1. В IIS Manager выберите сайт
  2. В правой панели нажмите «Привязки»
  3. Нажмите «Добавить»
  4. Тип: https, Порт: 443
  5. Выберите созданный сертификат
  6. Нажмите OK

Создание сертификата и настройка HTTPS через PowerShell:

# Создать самоподписанный сертификат
$cert = New-SelfSignedCertificate -DnsName "localhost","mysite.local" -CertStoreLocation "cert:LocalMachineMy" -NotAfter (Get-Date).AddYears(5)

# Добавить HTTPS привязку
New-WebBinding -Name "MySite" -Protocol "https" -Port 443 -SslFlags 0
$cert | New-Item "IIS:SslBindings*!443"

Для production-сертификата от Let’s Encrypt используйте утилиту win-acme (wacs.exe) которая автоматически получает и обновляет бесплатные сертификаты для IIS. Подробнее о настройке брандмауэра для корректной работы HTTPS.

Пулы приложений и безопасность IIS

Пулы приложений (Application Pools) изолируют веб-приложения друг от друга. Каждый пул работает в отдельном процессе w3wp.exe с собственными правами.

Настройка пула приложений:

  • Версия .NET CLR — для ASP.NET Core выберите «Без управляемого кода», для ASP.NET Framework — v4.0
  • Режим конвейера — Integrated (рекомендуется) или Classic (для старых приложений)
  • Удостоверение — ApplicationPoolIdentity (безопасно), NetworkService или конкретная учетная запись
  • Перезапуск — настройте расписание перезапуска для предотвращения утечек памяти

Настройка прав на папку сайта:

# Предоставить права пулу приложений на папку сайта
# Формат учетной записи: IIS AppPoolИмяПула
icacls "C:inetpubmysite" /grant "IIS AppPoolMySitePool:(OI)(CI)M"

Основные настройки безопасности:

  • Отключите просмотр каталогов: в IIS Manager — «Просмотр каталогов» — Отключить
  • Настройте ограничения запросов в «Фильтрация запросов»
  • Включите динамическое сжатие для ускорения сайта

Пример файла web.config с базовыми настройками безопасности:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
        <add name="X-Content-Type-Options" value="nosniff" />
        <add name="X-Frame-Options" value="SAMEORIGIN" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

Диагностика и логирование IIS

IIS ведет детальные логи всех запросов и ошибок. Умение работать с ними — ключевой навык при диагностике проблем.

Расположение логов по умолчанию:

  • Логи сайтов: C:inetpublogsLogFilesW3SVC1 (цифра меняется по ID сайта)
  • Логи ошибок HTTP: C:WindowsSystem32LogFilesHTTPERR
  • Трассировка неудачных запросов: C:inetpublogsFailedReqLogFiles

Включение подробного логирования ошибок (Failed Request Tracing):

  1. В IIS Manager выберите сайт
  2. Откройте «Отслеживание неудавшихся запросов» — Изменить параметры сайта
  3. Включите трассировку и укажите папку и максимальное число файлов
  4. Нажмите «Добавить» для настройки правила трассировки (например все ответы 500-599)

Анализ логов IIS через PowerShell:

# Найти все запросы с кодом 500 за сегодня
$logPath = "C:inetpublogsLogFilesW3SVC1"
$today = (Get-Date -Format "yyMMdd")
$logFile = Get-ChildItem $logPath -Filter "*$today*" | Select-Object -Last 1
Get-Content $logFile.FullName | Where-Object {$_ -match " 500 "} | Select-Object -Last 20

Типичные проблемы и решения:

  • Ошибка 403 Forbidden — нет прав на папку или отключен документ по умолчанию
  • Ошибка 503 Service Unavailable — пул приложений остановлен. Проверьте в IIS Manager и запустите
  • Сайт недоступен снаружи — разрешите порт в брандмауэре Windows. Подробнее о настройке брандмауэра

Ознакомьтесь с официальной документацией по архитектуре IIS и справочником web.config на Microsoft Learn.

Полезные ссылки и материалы

Для решения задач, описанных в этой статье, могут пригодиться:

Официальная документация: Microsoft Learn: управление Windows.

Часто задаваемые вопросы

Можно ли установить IIS на Windows 11 Home?

Нет. IIS доступен только в Windows 10/11 Pro, Enterprise и Education. В Home-редакции компонент отсутствует. Альтернатива для Home — использовать nginx, Apache или XAMPP для локальной разработки.

Чем IIS отличается от nginx и Apache?

IIS — продукт Microsoft, глубоко интегрированный с Windows, Active Directory и .NET. Лучший выбор для ASP.NET-приложений. nginx и Apache кросс-платформенные и часто используются для PHP и Node.js. В Windows IIS обычно производительнее для Microsoft-стека.

Как разместить PHP-сайт на IIS?

Скачайте PHP для Windows с php.net, установите модуль CGI в компонентах IIS, зарегистрируйте PHP как FastCGI-обработчик через IIS Manager или командой appcmd. Подробная инструкция есть в документации PHP на сайте php.net/manual.

Нужен ли IIS если я использую Docker на Windows?

Нет. Docker Desktop на Windows запускает веб-серверы в контейнерах независимо от IIS. IIS нужен для приложений работающих непосредственно на хостовой Windows без контейнеризации, или для использования Windows Authentication с корпоративным AD.

Частые вопросы

Можно ли установить IIS на Windows 11 Home?

Нет. IIS доступен только в Windows 10/11 Pro, Enterprise и Education. В Home-редакции компонент отсутствует. Альтернатива для Home - использовать nginx, Apache или XAMPP для локальной разработки.

Чем IIS отличается от nginx и Apache?

IIS - продукт Microsoft, глубоко интегрированный с Windows, Active Directory и .NET. Лучший выбор для ASP.NET-приложений. nginx и Apache кросс-платформенные и часто используются для PHP и Node.js. В Windows IIS обычно производительнее для Microsoft-стека.

Как разместить PHP-сайт на IIS?

Скачайте PHP для Windows с php.net, установите модуль CGI в компонентах IIS, зарегистрируйте PHP как FastCGI-обработчик через IIS Manager или командой appcmd. Подробная инструкция есть в документации PHP на сайте php.net/manual.

Нужен ли IIS если я использую Docker на Windows?

Нет. Docker Desktop на Windows запускает веб-серверы в контейнерах независимо от IIS. IIS нужен для приложений работающих непосредственно на хостовой Windows без контейнеризации, или для использования Windows Authentication с корпоративным AD.