Загрузка

📘 Пункт 4. Управление сайтами и приложениями в IIS

Здесь мы разберём, как IIS организует сайты, приложения и пулы приложений, чтобы понимать архитектуру.


4.1. Сайты (Sites)

  • В IIS сайт = это комбинация:

    • IP-адрес

    • Порт (обычно 80 или 443)

    • Host name (домен, например example.com)

  • Можно держать десятки сайтов на одном IIS-сервере.

Пример:

  • example.com (порт 80/443) → папка C:\inetpub\example

  • shop.com (порт 80/443) → папка D:\sites\shop


4.2. Приложения (Applications)

  • Внутри сайта можно создать приложение — это как отдельный кусок сайта с собственной логикой.

  • У приложения есть виртуальный каталог и свой Application Pool.

Пример:

  • example.com → сайт

  • example.com/blog → приложение (отдельный PHP или .NET)


4.3. Виртуальные каталоги (Virtual Directories)

  • Это ссылка на папку вне корня сайта.

  • Можно подключить папку с другого диска или сетевого ресурса.

Пример:

  • /uploadsE:\files\uploads


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

  • Самая важная часть IIS.

  • Каждый пул = набор процессов (w3wp.exe), которые обрабатывают запросы.

  • Плюсы:

    • Изоляция сайтов (если один упал, другие работают).

    • Можно ограничить права (например, запуск от отдельного пользователя).

    • Можно настроить перезапуск, лимиты по памяти и CPU.

Совет:

  • Делай отдельный пул для каждого сайта.

  • Назначай пулу своего пользователя (не NetworkService, не SYSTEM).


4.5. Биндинги (Bindings)

  • У каждого сайта есть привязки:

    • IP: 0.0.0.0 (любой IP) или конкретный.

    • Port: 80 (HTTP), 443 (HTTPS).

    • Host name: example.com.

Так IIS понимает, какой сайт открыть при запросе.


4.6. Практика

  1. Создай тестовый сайт в IIS → привяжи к порту 8080.
  2. Настрой виртуальный каталог /images, который смотрит на папку в другом месте.
  3. Сделай отдельный Application Pool для этого сайта.
  4. Проверь, что сайт открывается по http://localhost:8080.

IIS (весь сервер)

├── Site 1 (example.com)
│ │
│ ├── Application 1 (корень сайта /)
│ │ ├── Virtual Directory: / (C:\inetpub\example)
│ │ └── Application Pool: AppPool1
│ │
│ └── Application 2 (/blog)
│ ├── Virtual Directory: /blog (D:\sites\blog)
│ └── Application Pool: AppPoolBlog

├── Site 2 (shop.com)
│ │
│ └── Application 1 (корень сайта /)
│ ├── Virtual Directory: / (D:\sites\shop)
│ └── Application Pool: AppPoolShop

└── Site 3 (test.local:8080)

└── Application 1 (/)
├── Virtual Directory: / (E:\testsite)
└── Application Pool: AppPoolTest

🔑 Что важно понять:

  1. IIS → Sites
    Один сервер IIS может держать десятки сайтов.
  2. Sites → Applications
    У каждого сайта может быть несколько приложений.
    Пример: основной сайт и отдельный /admin или /api.
  3. Applications → Virtual Directories
    Приложение может смотреть в разные папки на диске или даже на сетевых ресурсах.
  4. Applications → Application Pools
    Каждый сайт или приложение работает в своём пуле, то есть в отдельном процессе.
    Это даёт изоляцию и безопасность.

👉 В IIS Manager это всё видно как “дерево”:

  • Сайты

    • Приложения

      • Виртуальные каталоги

    • Привязки (Bindings)

  • Application Pools