Iis последние сведения о iis 5 0


Содержание

Как включить IIS в Windows 10

Windows 10 — это современная операционная система для компьютеров. На сегодняшний день в ней существует огромное количество различных скрытых функций, приложений и служб. Все они уже включены в Windows и позволяют расширить потенциал системы.

Именно такой службой является IIS или как принято называть — Internet Information Service. Специализированный сервис IIS — это комплект, предназначенный для создания, редактирования и полного управления сайтами. Такой специализированный сервис может использовать абсолютно любой пользователь и создавать на сервисе IIS собственные веб-сайты, являясь хостингом для них. Необходимо знать, что один сервер IIS способен управлять сразу несколькими веб-сайтами. При этом такой сайт будет иметь собственные свойства и настройки.

Интересные статьи по теме:

Как установить IIS в Windows 10

Изначально служба IIS в операционной системе Windows 10 выключена, а точнее не установлена. Это сделано с той целью, чтобы система поглощала, как можно меньше ресурсов и ваш персональный компьютер работал более оптимально. Поэтому если вы не нуждаетесь в данной службе, то желательно научиться ее включать и таким же образом выключать, чтобы не тратить лишние ресурсы вашего компьютера.

Для того чтобы установить службу IIS необходимо

Попасть в управление панели Windows. Сделать это можно с помощью клавиш Win + R, прописав там — control panel.

В открывшемся окне в правом вернем углу выбрать размер значков и выбрать в панели — крупные значки.

После чего найти пункт программы и компоненты. Найти их можно в этом окне, пролистав мышкой, далее необходимо зайти в этот пункт.

Теперь остается обратиться во вкладку включение или отключение компонентов Windows. Находиться она в левой стороне экрана.

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

В этой папке необходимо поставить галочку напротив этой службы, а также службы интернета и самой службы Internet Information Service, и подождать пока закончится загрузка.

После этого на вашем компьютере будет установлена служба Internet Information Service.
После установки, компьютер можно не перегружать, а сразу переходить к настройкам и управлению Internet Information Service. (установка этой службы займет не более 1 минуты)

Попасть в эту службу можно при помощи пуска, где у пользователя должна появиться новая вкладка с названием – диспетчер служб iis.

Теперь с помощью этой вкладки можно входить в Internet Information Service. В этом окне можно настраивать, управлять и редактировать вебсайт.

Функционал службы достаточно обширный и конечно прежде всего подойдет для профессиональных пользователей, которые знакомы с веб-сайтами и хостингами. Хотя и пользоваться данной службой будет не затруднительно обычным юзерам.

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

IIS 7.0: краткая инструкция для системного администратора. Часть 1 – установка.

Как я и обещал в посте несколько дней назад, начинаю писать серию постов типа инструкций шаг за шагом «как это установить и настроить» для тех админов, у которых действительно мало времени «на найти и разобраться», да еще если все это на английском языке. Кстати, кому таки не лениво – вот здесь очень хорошая подборка англоязычных документов под общим названием «Windows Server 2008 Step-by-Step Guides» — очень полезно в работе. Надеюсь, найдутся время и ресурсы, чтобы их тоже «отфильтровать» и сделать на их базе русские версии.

Если вам не интересны мои мысли «почему я пишу про IIS 7.0», можете смело пропустить пару абзацев.

В ближайший месяц я буду писать о веб-платформе от Microsoft, и в основном это будет касаться администрирования Internet Information Services 7.0 (IIS 7.0), входящего в состав Windows Server 2008. Это не значит, что я не буду писать ни о чем другом – конечно буду, у меня масса планов и тем с барселонского TechEd IT Forum 2008, в основном по направлению Windows Server 2008 R2, просто про администрирование IIS7 буду писать в этот месяц намного чаще и более последовательно, чем я это делал ранее. Поэтому даже те, для кого тема IIS7 не интересна, смогут как минимум раз в неделю находить у меня на блоге что-то интересное по другим тематикам.

Почему именно IIS 7.0? Здесь несколько причин. Во-первых, в уже упомянутом сборнике документов «шаг за шагом» «Windows Server 2008 Step-by-Step Guides» по странному стечению обстоятельств документа по IIS 7.0 почему-то нет. Во-вторых, как показывает опыт семинаров TechNet в Украине – знания, и даже можно сказать – представления многих админов о технологиях Microsoft для веб базируются на «сказках-страшилках» конца прошлого века, и хотелось бы показать всем желающим простой путь попробовать все технологии самостоятельно, без каких-то предрассудков и прочих ОБС. В-третьих – мне самому, человеку, который достаточно долгий период своей жизни занимался вебом вообще и IIS в частности – а я помню и IIS 2.0, и 3.0, и 4.0 и, конечно же, 5.0 – эта тема близка и интересна, и могу сказать, что за 10 лет в этом направлении Microsoft сделал существенные, даже можно сказать – эпохальные шаги вперед. Потому хотелось бы поделиться и опытом, и знаниями в этой прогрессирующей области с коллегами. В-четвертых – небольшой сюрприз в рамках проводимой в Украине акции для тех, кто разворачивает и управляет веб-серверами под управлением продуктов Microsoft – украинский офис Microsoft проводит акцию, по которой вы можете получить лицензионный Windows Server 2008 Web Edition (коробочная версия) бесплатно для хостинга ваших проектов и сайтов в Интернете. Так что торопитесь получить такой легальный продукт – пишите через блог на почту. И, наконец, в-пятых – в Киеве проводится полигон по веб-технологиям Microsoft, в том числе и IIS 7.0, так что мои статьи послужат хорошим фоном для такого мероприятия.

Ну, вроде это вcе наиболее веские причины писать в ближайший месяц о IIS 7.0. Кроме одной – зачем вообще админу знание IIS 7.0, который, в принципе, больше является платформой для разработчиков, на которой они делают свои веб-проекты? Проблема в том, что, как показывает опыт, разработчики не очень «напрягаются» созданием архитектуры и проработкой деталей веб-проекта, таких, как безопасность, администрирование, масштабирование и т.п. будущего работаеющего решения. И все это становится головной болью админа. Другая головная боль – это работодатели, которые часто под словом «компьютерщик» понимают, что человек может и спаять сгоревшую плату, и сетку настроить, и программку бухгалтерскую написать. И конечно же – веб сайт родной фирмы «Рога и Ко» сделать – как же без него. А то, что в ИТ отрасли есть глубокая специализация – никого не волнует. И вот потом и пишет мне в Live Messenger такой админ – «Игорь, а что делать?! За что хвататься?!», или если такого «Игоря», который бы подсказал, нет рядом – начинается такое.

Вроде, мотивы мои всем понятны. получилось довольно длинно, обещаю, сами технические части будут куда короче. Итак.

Часть 1. Установка IIS 7.0

Первый вопрос, который мне задают – что такое веб сервер под Windows, что нужно установить? Ответ – вебсервер под Windows – это служба IIS 7.0. Следующий вопрос – где взять IIS 7.0, откуда скачать? Ответ очень простой – IIS 7.0 (как и предыдущие версии, начиная с IIS 5.0) интегрирован в саму серверную ОС Microsoft Windows Server 2008 (а предыдущие версии IIS – соответственно в Windows Server 2003 и Windows 2000) и устанавливается как роль Windows Server. Тогда более тривиальный вопрос – где взять «настоящий» Windows Server 2008? Пробную версию Windows Server 2008 для всех экспериментов и тестирования рекомендую брать только с сайта Microsoft http://www.microsoft.com/windowsserver2008 — проверенная и гарантированно правильная версия (только не забудьте установить все обновления). Серийный номер для Windows Server 2008 не требуется – вы просто при установке в мастере установки оставляете его пустым и на вопрос, хотите ли вы все же его заполнить – гордо отвечаете НЕТ. Фактически, если вы при установке или в ходе эксплуатации таки введете настоящий продуктовый номер – вы получите «настоящую» версию. Версия без введенного серийного номера работает 60 дней, после чего требует активации. Мало кто любит читать иструкции при загрузке файлов, особенно те, которые написаны мелким шрифтом – на самом деле, на странице загрузке есть ссылка на инструкцию, какой скрипт надо запустить, чтобы сбросить счетчик активации Windows снова на 60 дней. Такую операцию надо не забыть сделать до истечения 60дневного срока (например, на 59й день эксплуатации). Всего вы можете посторить операцию сброса счетчика 3 раза – т.е. пробную версию можно эксплуатировать 240 дней, что вполне достаточно с тем, чтобы распробовать плюсы и минусы системы. Ну а для желающих уже сейчас эксплуатировать лицензионный Windows Server 2008 для своих веб-проектов – напоминаю про акцию, пишите.

Теперь о выборе редакции, которых доступно аж 4 – Datacenter, Enterprise, Standard, Web Edition. Пожалуйста, подходите более ответственно к их выбору. Зачем, ну зачем использовать Enterprise для запуска веб-сайтов – «шоб було?». Для таких задач есть оптимизированная редакция Web Edition. Сравнение возможностей разных редакций можно найти там же, на официальном сайте http://www.microsoft.com/windowsserver2008. Кроме того, некоторые соображения по использованию лицензионных соглашений и виртуализации в разных редакциях я написал на этом блоге ранее.

После установки экземпляра Windows Server 2008 и его конфигурации (если это также вызывает затруднения – смотрим видео с семинара по Windows Server 2008) переходим непосредственно к установке IIS 7.0. Что нового в IIS 7.0, какие модули включены в него и т.д. – я рассматривать не буду, все теоретические выкладки можно найти в электронной версии журнала TechNet Magazine, которая выходит в том числе и на русском. IIS 7.0 были посвящены 2 статьи в мартовском и июльском номерах журнала. Рекомендую ознакомиться с ними перед практическим применение – знание теории, пусть даже в сжатой форме весьма полезно.

Основным нововведением в направлении установки различных компонент и служб в Windows Server 2008 является понятие «роли». Роль представляет из себя набор всех необходимых компонент, настроек системы, безопасности и т.п., которые необходимы для выполнения определенной задачи. Кроме того, имеется также информация о взаимодействии ролей между собой – одна роль может работать как подмножество другой и, наоборот – роли могут конфликтовать между собой – об этом администратор будет уведомлен при установке такой роли поверх уже существующих. Установку и конфигурацию всего необходимого система выполняет автоматически при выборе конкретной роли. Такой подход гарантирует, что даже в случае ошибки администратора, связанной с установкой той или иной роли, не требуемой в текущий момент – система будет функционировать нормально и это не затронет работоспособность других ролей. Как впрочем, это также существенно упрощает и сам подход к управлению системой Windows Server 2008 в целом.

Управление ролями осуществляется через стандартную оснастку управления Windows Server 2008 – Server Manager или в процессе начальной конфигурации сервера через Initial Configuration Tasks.

IIS 7.0 устанавливается как роль Windows Server 2008. Для этого требуется:

1. Запустить оснастку Server Manager из меню Start или из панели Quick Launch. Server Manager по умолчанию стартует автоматически при входе администратора в систему. Server Manager является основным инструментом управления сервером Windows Server 2008.

2. В оснастке на стартовой странице убедиться, что сервер сконфигурирован правильно. Желательно проверить наличие статического IP адреса. Если он не установлен, его можно поменять тут же, из консоли Server Manager, открыв в правой панели по линку «View Network Connections» сетевые интерфейсы.

3. Выбираем в левой панели Server Manager пункт Roles, в правой панели видим список текущих ролей. В зависимости от редакции ОС и установленных ролей список может варьироваться. В данном примере ни одна роль не установлена.

4. Для установки новой роли используем в правой панели в разделе «Roles Summary» линк «Add Roles».

5. Запускается мастер установки ролей «Add Roles Wizard», пропускаем первую страницу «Before You Begin» мастера, нажав кнопку «Next >»

6. На странице «Select Server Roles» в списке ролей выбираем роль «Web Server (IIS)». Список ролей может отличаться в зависимости от редакции. Данный список соответствует редакции Windows Server 2008 Enterprise Edition x64.

7. При выборе роли «Web Server (IIS)» мастер автоматически предлагает установить сервисы, которые требуются для функционирования веб сервера. Это службы активации процессов, фактически, они обеспечивают среду исполнения процессов, обслуживающих вебсайты. Соглашаемся с установкой данных служб путем нажатия кнопки «Add Required Features» и нажимаем кнопку «Next >» в мастере.

8. На странице «Select Role Services» отображается список всех доступных модулей (сервисов), входящих в состав IIS 7.0, представляющих 3 большие группы – Web, Management и FTP – и внутри сгруппированых по назначению – общие модули для поддержки HTTP Common HTTP Features, модули для исполнения сценариев и приложений Application Development, модули управления журналированием и диагностикой Health and Diagnostics, модули обеспечения безопасности Security, производительности Performance, модули управления и совместимости с предыдущей версией IIS 6.0 Management Tools, и, наконец, модули FTP. По умолчанию роль веб сервера IIS 7.0 устанавливается и конфигурируется в минимальном наборе из 9 модулей:

a. только для работы со статическим HTML контентом (модули из Common HTTP Features),

b. только с подключением анонимных пользователей и с фильтрацией вредоносных запросов (Security),

c. с базовыми модулями для журналирования запросов к вебсайтам на сервере и просмотра очереди запросов (Health and Diagnostics),

d. с модулем сжатия статического контента при передаче страниц клиенту HTTP (Performance),

e. и консоли администрирования в режиме локального подключения к веб серверу IIS Management Console.

9. На этом шаге можно добавить дополнительные модули в конфигурацию согласно задачам будущих вебсайтов, которые будут работать на данном вебсервере. Не рекомендуется «просто так» добавлять модули, особенно, если вы не знаете их назначение. Краткое описание каждого модуля можно найти прямо на странице (в правом верхнем углу), которое отображается, когда вы выбираете модуль в списке. Не стоит торопиться (или, наоборот, переставлять всю систему, если установили лишнее) – вы всегда можете доустановить модули к уже установленной роли, или удалить уже установленные модули. Функции, выполняемые наиболее важными модулями, а также их настройку, мы рассмотрим отдельно.

10. При отметке отдельного модуля для добавления, также, как и при выборе роли, мастер автоматически проводит проверку всех связей и зависимостей и предлагает установить дополнительные модули, без которых функционирование выбраного невозможно. В данном примере для установки выбран модуль ASP.NET и мастер автоматически запрашивает разрешение на установку других модулей и служб, необходимых для его работы. Соглашаемся с установкой данных служб и модулей путем нажатия кнопки «Add Required Role Services». По окончанию выбора всех модулей нажимаем кнопку «Next >» в мастере.

11. На странице «Confirm Installation Selection» отображается для подтверждения информация о всех выбранных модулях, которые будут установлены. Также отображаются служебные и информационные сообщения рекомендательного характера. Например, рекомендация после установки роли IIS 7.0 выполнить обновления ОС или установить Windows System Resource Manager (WSRM), который позволяет обеспечить распределение ресурсов системы при выполнении веб-приложений. Нажатие кнопки «Next >» на этой странице устанавливает весь указанный перечень модулей.

12. По окончании процесса установки мастер отображает станицу с результатами установки, на которой, в зависимости от предыдущих настроек системы и выбранных модулей, может потребоваться перезагрузка сервера.

13. После закрытия окна мастера установки роли в левой панели консоли Server Manager в разделе «Roles» среди других ролей появляется подраздел «Web Server (IIS)». В правой панели отображается информация о состоянии всех установленных ролей.

Илон Маск рекомендует:  Использование float

14. Выбираем подраздел «Web Server (IIS)» в левой панели Server Manager, в правой панели отображается информация о работе роли веб сервера. Здесь представлены:

a. Events: агрегированный список записей из всех журналов событий ОС за последние 24 часа, имеющих отношение к работе веб служб,

b. System Services: список всех системных сервисов, обеспечивающих функционирование данной роли и с возможностями по управлению ими и мониторингу их состояний,

c. Role Services: в данном случае – список всех модулей IIS 7.0 с указанием установлен данный модуль или нет и с возможностями старта мастера установки/удаления модулей данной роли (о котором мы говорили выше),

d. Resources and Support: наиболее интересный раздел информации о каждой роли, который содержит в себе базу знаний с рекомендациями по дополнительной более тонкой настройке той или иной роли для отдельных сценариев использования. Рекомендуется к широкому использованию.

Таким образом, если в п.14 вы видите, что ваша роль работает без ошибок в журналах, все требуемые сервисы работаю (не отображается информация о их аварийной остановке), все необходимые для ваших задач модули отображаются в списке как установленные – первый шаг к использованию веб сервера под управлением IIS 7.0 вы сделали – вы его установили.

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

IIS (Internet Information Services)

Internet Information Services
Разработчики: Microsoft
Постоянный выпуск: 10 / 29 July 2015 года ; 4 years ago ( 2015-07-29 )
Состояние разработки: Active
Написана на: C++ (язык программирования) [1]
Операционная система: Windows NT
Локализация: Same languages as Windows
Тип ПО: Web server
Лицензия: Part of Windows NT (same license)
Веб-сайт iis .net

IIS (англ. Internet Information Services ) является Visual Basic приложением, которое располагается на веб-сервере и отвечает на запросы браузера. Приложение IIS использует HTML для представления своего пользовательского интерфейса и использует скомпилированый код Visual Basic для обработки запросов и реагирования на события в браузере. Для пользователя приложение IIS представляется рядом страниц HTML. Для разработчика приложение IIS состоит из особого типа объекта, называемого WebClass, который в свою очередь, содержит ряд ресурсов, называемых webitems. WebClass выступает в качестве центрального функционального блока приложения, обрабатывающего данные из браузера и отправляющего информацию пользователям. Разработчик описывает ряд процедур, которые определяют, каким образом WebClass отвечает на эти запросы. webitems являются HTML-страницами и другими данными, которые WebClass может отправить в браузер в ответ на запрос.

Содержание

Архитектура

Internet Information Services (IIS) 7 и выше обеспечивает архитектуру обработки запросов, которая включает в себя:

  • Служба активации процесса Windows (WAS), который позволяет сайтам использовать отличающиеся от HTTP и HTTPS протоколы.
  • Веб-движок сервера, который может быть изменен путем добавления или удаления модулей.
  • Интегрированные конвейеры обработки запросов от IIS и ASP.NET.

Компоненты

IIS содержит несколько компонентов, которые выполняют важные функции для приложений и ролей веб-сервера в Windows Server® 2008 (IIS 7.0) и Windows Server 2008 R2 (IIS 7.5). Каждый компонент имеет функции, такие как прослушивание запросов к серверу, управление процессами и чтение файлов конфигурации. Эти компоненты включают в себя обработчики протокола, такие как HTTP.sys и службы, такие как World Wide Web Publishing (служба WWW) и службы активации процесса Windows (WAS).

Internet Information Server (IIS) имеет свой собственный ASP.NET Process Engine для обработки запроса ASP.NET. Способ настройки приложения ASP.NET зависит от того, какая версия IIS приложения используется.

Internet Information Server (IIS) включает в себя набор программ для создания и администрирования веб-приложений, поисковых систем, а также поддержку для написания веб-приложений, обеспечивающих доступ к базам данных, таким как SQL Server. IIS позволяет настроить компьютер в качестве веб-сервера и предоставляет функциональные возможности для разработки и развертывания веб-приложений ASP.NET на сервере. Кроме того, возможно установить параметры безопасности для конкретного веб-сайта для конкретных пользователей и компьютера для того, чтобы защитить его от несанкционированного доступа.

По заявлениям разработчиков, IIS повышает доступность веб-сайтов и приложений при одновременном снижении системного администрирования и стоимости развертывания. IIS 7.5 поддерживает HTTP, HTTPS, FTP, FTPS, SMTP и NNTP.

Ключевые особенности

  • Встроенные расширения
    • WebDAV и FTP
    • Фильтрация запросов
    • Модули администрирования
  • Усовершенствования управления
    • Анализатор соответствия рекомендациям
    • Windows PowerShell провайдер и cmdlets
    • Ведение журнала конфигурации и трассировки
  • Улучшения хостинга приложений
    • Управляемые учетные записи служб
    • Hostable веб-ядро
    • Трассировка неудачных запросов для FastCGI
  • Улучшения .NET поддержки для Server Core

Установка

  • Нажмите кнопку Пуск и выберите Панель управления.
  • На панели управления выберите Программы, а затем Включение и отключение компонентов Windows.
  • В диалоговом окне «Компоненты Windows» нажмите Службы IIS, а затем кнопку ОК.

Конфигурирование

Настройка веб-узла по умолчанию: При установке IIS настроен для использования в качестве веб-узла по умолчанию; тем не менее может потребоваться изменить некоторые настройки. Чтобы изменить основные параметры для веб-узла и имитировать действия, которые требуются для настройки Apache в первый раз с помощью файла конфигурации:

  1. Войдите в систему на компьютере веб-сервера с правами администратора.
  2. Нажмите кнопку Пуск, выберите Настройка и щелкните Панель управления.
  3. Дважды щелкните значок Администрирование, а затем дважды щелкните значок Диспетчер служб Интернета.
  4. Щелкните правой кнопкой мыши веб-узел, который необходимо настроить, на левой панели и выберите команду Свойства.
  5. Перейдите на вкладку веб-узел .
  6. В поле Описание введите описание веб-узла.
  7. Введите адрес Internet Protocol (IP) для веб-узла или оставьте значение по умолчанию все (не назначено) .
  8. Измените порт протокола управления передачей (TCP), соответствующим образом.
  9. Перейдите на вкладку Домашний каталог.
  10. Чтобы использовать папку на локальном компьютере, выберите каталог на данном компьютере и нажмите кнопку Обзор, чтобы найти папку, которую требуется использовать.
  11. Чтобы использовать папку, общий ресурс с другого компьютера в сети, выберите параметр Общая папка другого компьютера и затем введите путь или нажмите кнопку Обзор, чтобы выбрать общую папку.
  12. Нажмите кнопку Чтение предоставить доступ на чтение к папке (обязательно).
  13. Нажмите кнопку ОК, чтобы принять свойства веб-сайта.

Создание нового веб-узла:

Чтобы создать новый веб-узел на сервере Apache, необходимо настроить виртуальный узел и настроить отдельные параметры для узла. Если используются службы IIS, можно создать новый веб-узел путем перевода следующих терминов в эквивалентные термины IIS:

Apache термин Термин IIS
Корень документа Каталог домашней страницы веб-узла IIS
Имя_сервера Заголовок узла IIS
Прослушивание IIS IP-адрес и TCP-порт

Чтобы создать новый веб-узел в IIS, выполните следующие действия:

  1. Войдите в систему на компьютере веб-сервера с правами администратора.
  2. Нажмите кнопку Пуск, выберите Настройка и щелкните Панель управления.
  3. Дважды щелкните значок Администрирование, а затем дважды щелкните значок Диспетчер служб Интернета.
  4. Щелкните Действие, выберите пункт Создать и выберите веб-узел.
  5. После запуска мастера создания веб-узла, нажмите кнопку Далее.
  6. Введите описание веб-узла. Это описание используется для идентификации веб-узла в диспетчере служб Интернета только для внутренних целей.
  7. Выберите IP-адрес для веб-узла. Если выбрать все (без значения), веб-узел будет доступен для всех интерфейсов и всех настроенных IP-адресов.
  8. Введите номер порта TCP, чтобы опубликовать на нем сайт.
  9. Введите имя заголовка узла (реальные имя, которое используется для доступа к этому узлу).
  10. Нажмите кнопку Далее.
  11. Введите путь к папке, которая содержит документы веб-узла, или нажмите кнопку Обзор, выберите папку и нажмите кнопку Далее.
  12. Укажите права доступа для веб-узла и нажмите кнопку Далее.
  13. Нажмите кнопку Готово.

Internet Information Services

Internet Information Services
Тип проприетарное программное обеспечение и HTTP-сервер
Разработчик Microsoft
Написана на C++
Операционная система Microsoft Windows NT
Последняя версия 10
Лицензия Microsoft EULA
Сайт iis.net

IIS (Internet Information Services, до версии 5.1 — Internet Information Server) — проприетарный наборсерверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP. По данным компании Netcraft на июнь 2015 года, почти 22 млн сайтов обслуживаются веб-сервером IIS, что составляет 12,32 % от общего числа веб-сайтов. [1]

Версии IIS Править

Номер версии Выпущена в составе Год
1.0 Windows NT 3.51 1995
2.0 Windows NT 4.0 1996
3.0 Пакет обновления 3 для Windows NT 4.0 1997
4.0 Пакет Option Pack для Windows NT 4.0 1998
5.0 Windows 2000 2000
5.1 Windows XP Professional 2001
6.0 Windows Server 2003 2003
7.0 Windows Vista; Windows Server 2008 2006
7.5 Windows 7; Windows Server 2008 R2 2009
8.0 Windows 8; Windows Server 2012 2012
8.5 Windows 8.1; Windows Server 2012 R2 2013
10 Windows 10; Windows Server 2020 2015

Служба WWW в составе IIS Править

Основным компонентом IIS является веб-сервер — служба WWW (называемая также W3SVC), которая предоставляет клиентам доступ к сайтам по протоколам HTTP и, если произведена настройка, HTTPS.

Один сервер IIS может обслуживать несколько сайтов (IIS 6.0 и выше). Каждый сайт имеет следующие атрибуты:

  • IP-адрес сайта;
  • TCP-порт, на котором служба WWW ожидает подключений к данному сайту;
  • Заголовок узла (Host header name) — значение заголовка Host запроса HTTP, указывающее обычно DNS-имя сайта.

Таким образом, например, один сервер с одним IP-адресом может обслуживать на одном TCP-порту несколько сайтов. Для этого необходимо создать несколько DNS-записей, указывающих на IP-адрес сервера, и различать сайты по заголовкам узла.

Для каждого сайта указывается домашний каталог — каталог в файловой системе сервера, соответствующий «корню» сайта. Например, если сайтуwww.example.com сопоставлен домашний каталог D:\example, то на запрос ресурса с адресом http://www.example.com/index.htm веб-сервер вернёт файл D:\example\index.htm.

Архитектура службы WWW Править

В IIS 6.0, доступном в составе систем Windows Server 2003, служба WWW претерпела серьёзные изменения. Был добавлен новый режим обработки запросов, называемый режимом изоляции рабочих процессов (англ. worker process isolation mode). В этом режиме все веб-приложения, обслуживаемые сервером, работают в разных процессах, что повышает стабильность и безопасность системы. Кроме того, для приёма запросов HTTP был создан новыйдрайвер http.sys, который работает в режиме ядра, что ускоряет обработку каждого запроса.

Все запросы к статическому содержимому, не требующие исполнения скриптов, исполняются самим драйвером http.sys в ядре, что сближает веб-сервер IIS с серверами режима ядра.

При этом запросы к динамическому содержимому исполняются рабочим процессом и загруженными в его адресное пространство модулями. С точки зрения пути исполнения запросов не существует центрального процесса, что повышает надежность в случае отказа, вызванного ошибкой в скрипте или ином модуле исполнения. Рабочие процессы автоматически перезапускаются при возникновении ошибок.

Протокол SSL поддерживается отдельным процессом HTTP SSL, который служит мостом между протоколом TCP и драйвером http.sys.

Безопасность в службе WWW Править

Веб-сервер IIS предоставляет несколько способов разграничения доступа к сайтам и веб-приложениям. Служба WWW в составе IIS отличается от других веб-серверов тем, что функции обеспечения безопасности в ней тесно интегрированы с системой Windows NT, на основе которой она работает. В частности, чтобы получить доступ к защищённому ресурсу, посетитель должен ввести имя и пароль пользователя, существующего в системе Windows, на которой установлен IIS (или в домене Active Directory, если сервер принадлежит к домену). После этого пользователь работает с сайтом так же, как если бы он выполнил интерактивный вход в систему на сервере. К нему применяются установленные файловой системой NTFS разрешения на доступ к файлам икаталогам. Эта особенность IIS удобна для внутренних сайтов предприятий, однако практически неприменима для открытых сайтов Интернета, где невозможно создавать пользователя Windows для каждого зарегистрированного посетителя сайта. Поэтому в последнем случае разработчикам сайтов и веб-приложений обычно приходится использовать собственные механизмы ограничения доступа.

Определённый пользователь Windows сопоставляется с каждым посетителем сайта даже в том случае, когда ограничение доступа не требуется. Этот режим называется режимом анонимного доступа. В этом случае посетитель представляется на сервере как специальный пользователь, имя которого обычно имеет формат IUSR_xxxx (где xxxx — имя компьютера, на котором установлен IIS, в седьмой версии этот специальный пользователь не содержит имени компьютера, то есть просто IUSR). Этому пользователю должен быть разрешён доступ к ресурсам, которые открыты анонимным посетителям.

Начиная с версии 6.0 служба WWW поддерживает следующие методы аутентификации, то есть определения личности пользователя по имени и паролю: [2]

  • Анонимная аутентификация (anonymous authentication) — определение личности пользователя не выполняется.
  • Базовая аутентификация (basic authentication) — имя и пароль передаются по сети открытым текстом.
  • Дайджест-аутентификация (digest authentication) — пароль обрабатывается хеш-функцией перед отправкой по сети, что делает невозможным его прочтение в случае перехвата злоумышленником.
  • Встроенная аутентификация Windows (integrated Windows authentication) — выполняется попытка входа на сервер с теми же учётными данными, под которыми работает браузер пользователя.
  • Аутентификация для доступа к UNC-ресурсам (UNC authentication) — имя и пароль передаются удаленному серверу, на котором находится опубликованный в IIS UNC-ресурс, и удаленный сервер выполняет аутентификацию.
  • Аутентификация с использованием .NET Passport (.NET Passport Authentication) (удалена в Windows Server 2008 и IIS 7.0) [3] — для аутентификации используется служба .NET Passport.
  • Аутентификация с использованием клиентского сертификата (certificate authentication) — для аутентификации пользователь должен предоставить SSL-сертификат.

Реализация веб-приложений для IIS Править

Веб-сервер IIS поддерживает несколько различных технологий создания веб-приложений:

  • ASP.NET — разработанная Microsoft технология; для IIS это — основное на сегодняшний день [4] средство создания веб-приложений и веб-служб. IIS 6.0 поставляется вместе с операционными системами, в которые также изначально входит .NET Framework, так что поддержка ASP.NET как будто уже встроена в IIS 6.0; для более ранних версий необходимо отдельно загрузить и установить .NET Framework.
  • ASP — предшествовавшая ASP.NET технология создания динамических веб-страниц на основе сценариев. Входит в поставку IIS начиная с версии 3.0.
  • CGI — стандартная межплатформенная низкоуровневая технология создания динамических веб-страниц.
  • FastCGI — клиент-серверный протокол взаимодействия веб-сервера и приложения.
  • ISAPI — низкоуровневая технология, аналогичная интерфейсу модулей Apache, предоставляющая полный доступ ко всем возможностям IIS, возможность разработки веб-приложений в машинном коде и возможность переопределения части функций IIS и добавления к нему функций, как связанных с генерацией контента, так и не связанных с этим. Подсистема исполнения скриптов ASP и подсистема ASP.NET выполнены как модули ISAPI.
  • SSI — включение в одни страницы текста из других страниц. Строго говоря, веб-приложением не является, поскольку IIS поддерживает лишь ограниченный набор возможностей и без того малофункционального SSI. В частности, IIS5 поддерживает только статическое включение и игнорирует команды условного ветвления.

Сам сервер поддерживает только CGI, FastCGI [5] , ISAPI и SSI. Все остальные технологии являются надстройками, работающими через CGI, FastCGI или ISAPI.

При помощи CGI приложения для IIS могут разрабатываться на основе практически любых, в том числе сторонних, инструментов, допускающих запись встандартный поток вывода и чтение переменных среды — Perl, C/С++ и даже средствами интерпретатора командной строки Cmd.exe.

Технология ISAPI позволяет, с одной стороны, создавать специальные приложения для IIS, требующие особенно тесного взаимодействия с механизмом сервера, а с другой стороны, является удобной платформой для организации эффективного взаимодействия IIS с другими технологиями разработки веб-приложений — например, PHP и Perl.

Почтовые возможности Править

IIS поддерживает работу SMTP/POP3-сервисов. В современных версиях Microsoft Exchange Server реализация протоколов SMTP, POP3 и IMAP выполнена в виде подсистем к IIS, заменяющих поставляемые с IIS почтовые подсистемы.

Основы архитектуры IIS, или запросопровод для ASP.NET

В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.

1. Общий план
2. Крупный план
2.1. HTTP.SYS
2.2. World Wide Web Publishing Service (W3SVC)
2.3. Windows Process Activation Service (WAS)
2.4. Пул приложений
2.5. Домен приложения, приложение
3. Что дальше?
Источники

1. Общий план

Итак, начнём с конца, а потом рассмотрим отдельные аспекты чуть более пристально.
В англоязычной литературе процесс обработки запроса в IIS называется «request processing pipeline» — что-то вроде «конвейера обработки запроса». В общих чертах он представлен на рисунке ниже для http-запроса.

Илон Маск рекомендует:  Прижатый подвал, 5 способов

Рис. 1. HTTP request processing pipeline (IIS 7.x).


Таким образом, http-запрос проходит по «сборочной ленте конвейера» через следующее:

1. Браузер обращается к веб-серверу по определённому URL, на стороне сервера запрос перехватывает драйвер HTTP.SYS.
2. HTTP.SYS стучится к WAS для получения информации из хранилища конфигурации.
3. Служба WAS запрашивает конфигурацию из хранилища — из файла в папке IIS (applicationHost.config).
4. Поскольку данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она же WWW Service на картинке), эта информация содержит в себе данные о пуле приложений (application pool) и прочих параметрах сайта.
5. Служба W3SVC использует эту информацию для кофигурации HTTP.SYS.
6. Служба WAS запускает процесс W3WP.exe для пула приложений, если он ещё не был запущен.
7. В процессе W3WP.exe работает приложение веб-сайта, которое, собственно, формирует и возвращает ответ драйверу HTTP.SYS.
8. HTTP.SYS отправляет ответ браузеру.

В принципе уже этой схемы достаточно для прохождения интервью в большинстве компаний и получения общего представления об архитектуре IIS. Но если вы не для галочки сюда зашли, то прошу следовать далее.

2. Крупный план

2.1. HTTP.SYS

На транспортном уровне IIS использует прослушивателей протоколов (protocol listeners), которые располагаются поверх стека TCP/IP. Наиболее интересный нам такой компонент – это системный драйвер HTTP.sys, который встроен в ядро ОС и работает с протоколами HTTP и HTTPS, регистрирующийся самостоятельно на прослушку всех портов, на которые будут приходить запросы к сайтам в IIS.

Встроенный в ядро HTTP.sys стал нововведением в IIS 6, заместив собой Windows Socket API – компонент перехвата HTTP- и HTTPS-запросов на пользовательском уровне в IIS более ранних версий. Вероятно, интеграция драйвера в ядро является той самой причиной, по которой версия IIS жёстко привязана к версии Windows.

Драйвер принимает все входящие запросы и перенаправляет их в нужный пул приложений. Если по какой-то причине рабочий процесс, в коем хостится требуемый пул, остановлен (сбой, таймаут простоя, смена конфигурации и т.п.) или ещё запускается, то HTTP.sys сохраняет входящие запросы в специально отведённой для каждого пула очереди. Таким образом, запросы пользователей никуда не пропадают, и они вообще не замечают каких-то перебоев в работе сайтов под управлением IIS.

Ещё HTTP.sys умеет кешировать ответы (более подробно — Instances in which HTTP.sys does not cache content), поэтому некоторые запросы обрабатываются без передачи на уровень приложения, а также проводит первичный разбор URI запроса и его валидацию в соответствии с RFC 2396 (кое-что можно почерпнуть отсюда — Use of special characters like ‘%’ ‘.’ and ‘:’ in an IIS URL) и журналирование запросов/ответов.

Некоторые настройки HTTP.sys вынесены в системный реестр Windows (более подробно — Http.sys registry settings for Windows). Кстати, там же – в реестре – можно подсмотреть обычное место прописки нашего гражданина: %SystemRoot%\system32\drivers\http.sys.

Признаться, в процессе написания данной статьи я сам открыл для себя некоторые детали. Например, кэширование ответов на уровне драйвера HTTP.sys. Это помогло мне объяснить один случай странного, как мне тогда казалось, феномена в поведении IIS. Маркетологи выложили на сайт swf-открытку перед очередным праздником, но потом им что-то не понравилось в названии файла и они его переименовали. Однако сайт продолжал выдавать открытку по старому URL и даже очистка браузерного кэша не помогала. Тут уже подключился я, но ни перезапуск веб-сайта и всего пула приложений, ни обращение к сайту в обход корпоративного прокси-сервера не дали ожидаемого результата. Но теперь-то мы знаем, кто виноват.

2.2. World Wide Web Publishing Service (W3SVC)

Данная служба (сокращённо именуемя в спецификациях WWW service) была представлена в IIS 6 в качестве отдельного компонента для работы с протоколами HTTP/HTTPS и управления рабочими процессами приложений и выполняла следующие функции:

  • Администрирование драйвера HTTP.sys.
  • Управление рабочими процессами.
  • Мониторинг показателей производительности веб-сайтов.

Эта служба функционирует в Windows Server 2003 в контексте процесса Svchost.exe (настройки можно посмотреть в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) в отличие от всех остальных служб IIS, которые исполняются в контексте процесса Inetinfo.exe, и реализована в Iisw3adm.dll.

В IIS 7.x функция управления процессами была вынесена в отдельную службу – WAS (см. п.2.3) в целях универсализации архитектуры. Теперь WWW-служба стала по своей сути одним из адаптеров, специализируясь на протоколах HTTP/HTTPS – работа поверх драйвера HTTP.sys. Однако WWW-служба остаётся краеугольным компонентом IIS, поэтому её настройка отличается от настройки адаптеров к другим протоколам (чуть подобнее здесь); она функционирует в том же рабочем процессе, что и WAS, и реализована в той же самой библиотеке (рис. 2).

Рис.2. Рабочий процесс со службами W3SVC и WAS.

Раз уж зашла речь об адаптерах к прослушивателям протоколов (protocol listener adpater), то давайте чуть задержимся и посмотрим, какие они бывают. В принципе IIS 7.x можно настроить для обработки запросов по любым протоколам помимо типовых HTTP и FTP, например, POP3, SMTP, Gopher. Вы даже вольны придумать свой протокол для своей веб- или WCF-службы и реализовать для него все нужные компоненты, если не жалко своего времени. Скорее всего, адаптеры и прослушиватели для наиболее распространённых протоколов доступны для свободного и коммерческого скачивания – этого я не проверял. Но прежде всего стоить обратить внимание на стандартные службы (рис. 3), поставляемые с .NET Framework и интегрированные с IIS:

  • NetTcpActivator для протокола TCP;
  • NetPipeActivator для Named Pipes;
  • NetMsmqActivator для Message Queuing (ака MSMQ).

Рис. 3. Перечень стандартных не-HTTP-адаптеров в оснастке Служб Windows.

Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.

Администрирование и конфигурирование HTTP(S). В момент обновления конфигурации веб-сайтов, служба WAS передаёт эту информацию WWW-службе, а та уже, в свою очередь, настраивает HTTP.sys на прослушку конкретных портов, разбор IP и заголовка запрашиваемого сайта и, возможно, других параметров драйвера. В обратную сторону W3SVC обращается к WAS, когда в очередь запросов в HTTP.sys поступает новый, – для получения рабочего процесса-обработчика данного запроса.

Отслеживание показателей производительности. WWW-служба ведёт счётчики производительности, используя для этого драйвер HTTP.sys, и предоставляет их показатели веб-сайтами и кэшу IIS. Более подробной информации по этому вопросу мне найти не удалось.

2.3. Windows Process Activation Service (WAS)

Итак, WWW-служба в IIS 7.x, как и в IIS 6, продолжает выполнять задачи по администрированию HTTP.sys и управлению показателями производительности веб-сайтов. А вот задача управления рабочими процессами вынесена в отдельную службу – WAS. Она запускается системой в единственном экземпляре, считывает конфигурацию из файла %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config и настраивает через соответствующие адаптеры прослушивателей протоколов в соответствии с указанной в нём информации. Напомним, что для протоколов HTTP/HTTPS адаптером является служба W3SVC, а прослушивателем – драйвер HTTP.sys. При перехвате прослушивателем запроса он через свой адаптер обращается к службе WAS для получения рабочего процесса приложения, которому будет передан запрос для обработки и формирования ответа клиенту.

При активации нужного для обработки пользовательского запроса приложения задействуются следующие компоненты:

  • Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
  • Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
  • Исполняемый файл w3wp.exe – шаблон рабочего процесса.
  • Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
  • Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).

Ниже на рисунке представлен пример схемы компонентов внутри некоего экземпляра рабочего процесса приложения. Когда служба WAS запускает рабочий процесс, она загружает в него согласно конфигурации приложения требуемые обработчики протоколов процессов (PPH) и посредством менеджера приложений создаёт внутри рабочего процесса домен приложения, в котором будет хоститься приложение. Менеджер приложений загружает код приложения в домен приложения и требуемые обработчики протоколов уровня приложения (ADPH) для обработки сообщений по соответствующим сетевым протоколам.

Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.

Как отмечалось выше, .NET Framework несёт в себе реализацию компонент для протоколов HTTP/HTTPS (наш любимый ASP.NET), net.tcp, net.pipe и MSMQ. Стеки протоколов HTTP/HTTPS и FTP всё-таки более тесно интегрированы в IIS и ОС, поэтому настройку для нового протокола лучше продемонстрировать на примере менее популярных дотнетовских протоколов. Итак, после установки фреймворка в файле конфигурации IIS ApplicationHost.config появляется записи:

А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:

В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.

Обратите внимание, что в стандартном режиме эксплуатации IIS служба WAS, служба-адаптер для каждого прослушивателя протокола (в т.ч. W3SVC) и сами драйверы/прослушиватели каждого из протоколов (в т.ч. HTTP.sys) запущены в ОС в единственном экземпляре. Но отдельные запросы могут направляться разным приложениям в разных рабочих процессах. С другой стороны, отдельно взятому приложению могут направляться запросы по разным протоколам через соответствующие адаптеры. Видимо, для корректной реализации такого поведения и была придумана архитектурная связка драйвер протокола – адаптер драйвера протокола – служба активации (своеобразный регулировщик, точнее — маршрутизатор) – рабочий процесс.

2.4. Пул приложений

При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.

Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.

Рис. 5 Дополнительные настройки пула приложений

Ключевым нововведением в концепции пулов приложений в IIS 7.x стал новый параметр – модель управления контейнером, который может принимать 2 значения: классическая (Classic mode) и встраиваемая модель (Integrated mode).
Чтобы объяснить разницу между этими режимами работы, потребуется знакомство с понятием «модуль» (Module) в IIS 6/7.x и событийной моделью обработки запросов в связке IIS + ASP.NET. Тема эта достойна отдельной статьи, но меня на неё уже, увы, не хватит, судя по всему. Здесь же представлю вашему вниманию лишь общие, ключевые моменты.

Итак, IIS при обработке запроса пропускает его внутри рабочего процесса через последовательность специальных компонент – модулей. Например фильтрация, перенаправление, кэширование, аутентификация, авторизация. Каждый такой модуль ассоциируется с определённым событием, а их последовательность составляют событийную модель обработки запросов. Модули делятся на нативные (Native) и управляемые (Managed). Нативные модули поставляются вместе с IIS, а управляемые – в составе .NET Framework (ASP.NET). В общем-то, вы можете управлять ими в определённой степени на уровне конфигурации веб-приложения, но взаимодействовать из кода своего ASP.NET-сайта вы можете только с управляемыми модулями.

Рис. 6. Идеология модулей в IIS.

Классическая модель управления контейнером обеспечивает обратную совместимость с режимом изоляции рабочих процессов в IIS 6 – запросы к ASP.NET-сайту сначала проходят через нативные модули, а затем передаются в Aspnet_isapi.dll для обработки модулями в управляемой среде. Такое разделение между IIS и ASP.NET приводит к дублированию некоторых функций, например, аутентификации и авторизации. И вы не имеете возможности управлять программно поведением нативных модулей (пример хоть и не самый животрепещущий, но всё же – раздел «Убираем заголовок Server» в этой статье).

Встраиваемая модель предполагает более тесное взаимодействие между IIS и ASP.NET. Запрос в такой архитектуре обработки пропускается через установленную последовательность событий, в каждом из которых запрос пропускается через нативный и управляемые модули. В таком режиме модели обработки запросов IIS и ASP.NET объединены в единую модель, что позволяет избежать дублирования функций и получить больший контроль над обработкой запроса.

На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.

2.5. Домен приложения, приложение

Непосредственными контейнерами веб-приложения являются приложение и домен приложения (Application Domain, AppDomain). Зачастую эти два понятия отождествляются, но всё-таки это немного разные вещи. Приложение – это понятие IIS, а домен приложения – из ASP.NET. Причём в общем случае в приложении может быть несколько доменов. Приложением вы можете управлять из консоли IIS, а доменом приложения – в основном программно. Так, например, перезапускается приложение из консоли. А когда мы пересохраняем web.config, то перезагружается именно домен приложения, не трогая IIS-приложение.

Более важным с практической точки зрения является то, что приложение/домен приложения является sandbox-ом для кода вашего ASP.NET-сайта (не с такой надёжной изоляцией, как в случае с пулом, но всё же). Приведу один из моих любимых вопросов, которые я задавал соискателям на собеседованиях. Пусть имеются веб-сайт-1 и веб-сайт-2, а также некая библиотека MyLib.dll, в которой определён класс My >
Рис. 7. Рисунок для задачки.

Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.

3. Что дальше?

Дальше нужно разбираться в работе модулей (в терминах IIS) и событийной модели, в которых уже происходит собственно обработка запроса, о чем упоминалось в разделе 2.4. Вообще говоря, эта тема заслуживает отдельной статьи, на которую, боюсь, меня уже не хватит. Но без этого нельзя сказать, что мы рассмотрели весь конвейер обработки запросов. Поэтому кратко пройдёмся здесь по основным моментам, которые любопытствующий читатель может проработать самостоятельно.

Как отмечалось выше в разделе 2.4 модули IIS содержатся внутри рабочего процесса. Через них последовательно пропускается запрос (в отличие от HttpHandler-ов). Их набор и порядок определяется конфигурацией сервера и/или конкретного веб-приложения. Модули предназначены для отдельных, узконаправленных задач, таких как авторизация, кэширование, кастомное логгирование, сжатие, возврат статического контента и, конечно же, формирование HTML-страниц по заданному URL.

Планируем безопасность IIS 5.0

Серверы, стоящие на IIS, пользуются большой
популярностью в мире (примерно 25% всех
серверов, выше только Apache), но, к сожалению, с
регулярной постоянностью появляются баги,
несвоевременная защита от которых может
привести ко взлому или краху сервера.
Большинство компаний, содержащие небольшие
web сервера, не могут позволить
круглосуточно следить за ними, поэтому
остро стоит вопрос правильного
конфигурирования IIS и Windows NT, чтобы
защитится от существующих и будущих дырок в
IIS.

Итак, первым делом подпишитесь на MS
Security Notification Service, чтобы вовремя регулярно
получать информацию о новых патчах для
сервера.

Илон Маск рекомендует:  Русский перевод файла "httpd conf"

Далее правильно сконфигурируйте Local Security
Policy(LCP), самый простой способ скачать
соответствующий темплейт
Microsoft (скачав файл, разархивируйте его,
затем запустите LCP и в меню action, выберите import
policy).

Скачайте утилиту
Microsoft, которая проверяет наличие
установленных патчей к IIS.

Если у вас не стоит firewall, назначьте правила
в IP security policy, для предотвращения атак по
другим портам.

Если используете telnet server, ограничьте список
accountов, имеющих доступ по telnet.

Отключите неиспользуемые ISAPI приложения, в
таблице приведены основные фильтры, и для
чего они нужны (server->propeties->home
direcrory->configuration-> app maping).

Web пароли — .htr
Доступ к базам данных через интернет (ADO и
подобные технологии) — .idc
Внутрисерверные включения — .stm, .shtm и .shtml
Интернет принтер протокол(IPP) — .printer
Index server — .htw, .ida и .idq

Правильно установите права на файлы web —
сервера:

CGI
(.exe, .dll, .cmd, .pl)

Everyone
(X)
Administrators (Full Control)
System (Full Control)

Script
files (.asp)

Everyone
(X)
Administrators (Full Control)
System (Full Control)

Include
files (.inc, .shtm, .shtml)

Everyone
(X)
Administrators (Full Control)
System (Full Control)

Static
content (.txt, .gif, .jpg, html)

Everyone
(R)
Administrators (Full Control)
System (Full Control)

Включите логи IIS, и обязательно
записывайте в них следующую информацию:

Client IP Address
User Name
Method
URI Stem
HTTP Status
Win32 Status
User Agent
Server IP Address
Server Port

Для анализов логов IIS самая популярная
программа на сегодняшний день это Web trend log
analyzer, хотя я предпочитаю statistic server 5.0.

Удалите скрипты примеров в следующих
директориях:
c:\inetpub\iissamples
c:\winnt\help\iishelp
c:\program files\common files\system\msadc

Выключите опцию parent Path в IIS (server->propeties->home
direcrory->configuration-> app option)

Ели вы используете CGI приложения других
фирм, постоянно проверяйте их на
обнаружение дырок.

Запретите доступ юзеру IUSR_Server name, во все
директории кроме web.

Не располагайте web директорию на диске, где
хранится система.

Windows устанавливайте в директорию отличную
от \winnt.

По возможности используйте продукты
третьих фирм для контроля над
безопасностью (STAT, Retina и т.п).

Предложенные меры, конечно, не гарантируют
100% защиты от взлома, но позволяют снизить
риск таковых на порядки.

Iis последние сведения о iis 5 0

В этой статье автор дает ответы на часто задаваемые вопросы по настройке Internet Information Server (IIS) версии 5.0.

В: Я использую IIS 5.0 в среде Windows 2000 с Service Pack 1 (SP1). Чтобы повысить уровень информационной безопасности, я изменил учетную запись IUSR_servername. Если эту учетную запись удалить, она вновь появляется после перезагрузки системы. Значит ли это, что я обнаружил ошибку?
О: Вы обнаружили новую недокументированную особенность IIS 5.0. Даже если учетную запись переименовать, после перезагрузки появится новая. В документации Microsoft не объясняется, зачем реализована данная «функция», а в устанавливаемом вместе с IIS файле README содержатся лишь скудные упоминания о ней. Единственный возможный обходной путь — создать еще одну учетную запись для доступа в режиме Anonymous, в имени которого нет обозначения IUSR.
В: Наша компания ежедневно пересылает клиентам файлы в формате Adobe Acrobat Portable Document Format (PDF). Можно ли организовать потоковую передачу файлов, чтобы клиенты могли просматривать их в процессе загрузки?
О: Да. PDF-файлы чрезвычайно полезны для точного воспроизведения онлайнового контента, в том числе программной документации, специальных отчетов и даже целых книг. К сожалению, в Web-серверах и браузерах нет встроенных средств для работы с PDF-файлами. Следовательно, для создания и чтения PDF-файлов необходимы специальные программы — Adobe Acrobat.

Программа Acrobat Reader распространяется бесплатно, а процедура ее установки проста — в ней нет параметров, определяемых пользователем. После установки Acrobat Reader интегрируется с Microsoft Internet Explorer (IE) и автоматически вызывается при загрузке PDF-файла. Название Acrobat Reader выбрано очень удачно: утилита лишь выводит PDF-файл на экран, не позволяя внести в него никаких изменений. Эта особенность программы явно понравилась авторам онлайновых публикаций.

С помощью Acrobat Reader можно просматривать PDF-файлы, но чтобы создавать их, необходимо купить и установить полную версию Acrobat. Чтобы создать PDF-файл в программе Acrobat, достаточно скопировать документ на пиктограмму Acrobat, а затем перепечатать его в папку Monitored для автоматического преобразования, или выбрать пункт Create Adobe PDF из меню File приложения Microsoft Office. Документ PDF будет одинаково выглядеть на машинах Windows, Unix и Macintosh.

Во многих компаниях IIS используют в качестве средства для пересылки клиентам PDF-файлов. В программе Acrobat 4.0 реализован режим сохранения, именуемый Optimize, в котором можно пересылать PDF-файлы по одной странице. Чтобы выполнить эту операцию, нужно щелкнуть на пункте Save As и выбрать флажок Optimize. Если этот флажок не установить, то клиентам придется ждать окончания загрузки всего документа. Более подробные сведения о функции Optimize можно получить на Web-узле компании Adobe, выполнив поиск по ключевому слову byteserving.

Доставка клиентам заранее подготовленных PDF-файлов — не единственное возможное решение. PDF-файлы можно строить «на ходу». ActivePDF располагает набором серверных утилит для динамического генерирования PDF-файлов из среды Active Server Pages (ASP) или ColdFusion. С помощью этих утилит можно не просто пересылать статические документы, а динамически генерировать PDF-файлы. Концепция метода напоминает отличия между ASP и HTML. С помощью ActivePDF можно использовать сценарии записи для передачи запросов в базу данных и вывода результатов в PDF-файл, который затем загружается и прочитывается в Acrobat Reader. Похожие утилиты можно найти по адресу http://www.pdflib.com.

И наконец, ответ будет неполным, если не упомянуть еще об одной области, где PDF-файлы представляют интерес для IIS-администраторов. Использование Microsoft Index Server — обычный метод поиска на Web-узлах, где хранятся большие объемы информации. Index Server автоматически индексирует документы HTML и Office и располагает быстрым поисковым механизмом со встроенными интерфейсами для IIS. В Index Server нет собственных функций поиска информации в PDF-файлах. Чтобы устранить этот недостаток, компания Adobe построила «фильтр» Index Server. В результате в формируемых Index Server ответах на запросы могут быть указаны PDF-документы. Фильтр можно загрузить по адресу http://www.adobe.com/support/downloads/8122.htm.

В: После установки IIS 5.0 я обнаружил, что функция построения новых Web-узлов исчезла из меню New Tasks, к которому я обращался, щелкнув правой кнопкой мыши на имени сервера в Internet Services Manager (ISM). IIS 5.0 рассчитан на работу с несколькими Web-узлами. Каким образом можно построить новый Web-узел при отсутствии в меню необходимой функции?
О: Установив Microsoft Windows NT 4.0 Open Pack на NT Workstation 4.0 или Windows 9x, вы получаете Personal Web Server. В сущности, PWS представляет собой упрощенную версию IIS 4.0, с помощью которой можно проектировать файлы ASP.

IIS 5.0 интегрирован с Windows 2000, поэтому программу можно найти на компакт-дисках Windows 2000 Server и Windows 2000 Professional. Однако, если установить IIS 5.0 в Windows 2000 Pro, то вместо PWS вы получите Web-сервер, называемый IIS 5.0. Эта особенность сбивает с толку многих людей, ошибочно полагающих, что версии IIS 5.0 для Windows 2000 Server и Windows 2000 Pro наделены одинаковой функциональностью. Ошибка легко объяснима, так как серверы называются одинаково, но тем не менее, между ними есть существенные различия. Одно из ограничений версии IIS 5.0 для Windows 2000 Pro состоит в том, что она позволяет создать лишь один Web-узел. Поэтому я полагаю, что вы установили IIS 5.0 для Windows 2000 Pro и рассчитываете получить полнофункциональный пакет. Кроме того, версии IIS 5.0 для Windows 2000 Pro свойственны следующие ограничения:

* Число одновременных соединений не превышает 10. Поскольку для запроса?? загрузки страницы может потребоваться несколько сеансов TCP, на самом деле число одновременных соединений составляет 40.

* Отсутствует закладка Operators. С помощью закладки Operators можно указать, какие группы или пользователи могут администрировать Web-узел. В этой функции нет необходимости, поскольку Windows 2000 Pro — не сервер и не поддерживает нескольких Web-узлов.

* Нельзя ограничить доступ по IP-адресу или имени домена.

* В разделе Performance невозможно применить резервирование полосы пропускания или процессов. Поэтому нельзя выбрать флажок Enforce limits.

* Администрирование на базе браузера невозможно, потому что IIS 5.0 в среде Windows 2000 Pro непригоден для работы с несколькими виртуальными Web-серверами. А виртуальный Web-сервер необходим для функционирования инструментов администрирования на базе браузера.

Если установить IIS 5.0 для Windows 2000 Pro, то элемент Internet Services Manager даже не загружается в меню Administrative Tools (как в среде Windows 2000 Server). Необходимо настроить консоль Microsoft Management Console (MMC) и загрузить встраиваемый модуль Internet Information Services (то есть, iis.msc) из каталога \%systemroot%\system32\inetsrv. Однако, для управления IIS 5.0 в среде Windows 2000 Pro можно использовать Personal Web Manager (доступный из меню Administrative Tools).

Еще одно предупреждение относительно IIS 5.0 и Windows 2000 Pro: многие программисты строят сложные системы, прекрасно работающие с PWS в Windows 2000 Pro. Однако при переносе этих систем в среду Windows 2000 Server возникают трудности с ODBC, полномочиями, ASP и другими компонентами среды. Получив вопрос вроде «Мое приложение прекрасно работает с Windows 95 PWS, но не в Windows 2000 Server. В чем ошибка?», я отвечаю: «В чем ошибка процесса разработки, если вы проектируете программы для среды, для которой они не предназначены?» Конечно, допустимо программировать на системе, совместимой с предполагаемой целевой средой, но в таком процессе разработки должен быть предусмотрен промежуточный этап. При переходе от среды рабочей станции к серверной среде следует быть готовым к тому, что между ними существуют некоторые различия.

В: Когда пользователь обращается к IIS-серверу и запрашивает Web-страницу, IIS-сервер раскрывает свой IP-адрес в ходе сеанса связи HTTP между Web-сервером и пользователем. В целях безопасности наша компания стремится скрыть внутренние сетевые адреса. Каким образом можно изменить поведение IIS?
О: В некоторых случаях (не всегда) IIS возвращает IP-адрес. В статье Microsoft «Internet Information Server Returns IP Address in HTTP Header (Content-Location)», http://support.microsoft.com/support/kb/articles/q218/1/80.asp говорится, что IIS раскрывает IP-адрес только при пересылке статического HTML-контента. В этом случае ответ IIS выглядит примерно так: В этом сообщении явно указан внутренний IP-адрес сервера. Чтобы изменить реакцию сервера, нужно дополнить метабазу новым элементом. Введите в каталоге \winnt\system32\inetsrv\adminsamples по приглашению командной строки:

Затем нажмите Enter. В результате в метабазе появляется нужная запись. Не забудьте создать резервную копию метабазы перед внесением изменений, а после остановите и вновь запустите Web-сервер. Данный прием работает в IIS 5.0 и IIS 4.0. Ответ IIS будет выглядеть иначе: В: Я установил IIS 5.0 на машине с Windows 2000 Server своей компании. Теперь пользователи не могут изменить свои пароли через intranet, как они делали это с IIS 4.0. Каким образом можно вернуть им данную возможность, которая важна для работы компании?
О: При чистой установке IIS 5.0 пользователи имеют возможность менять пароли, но из-за угрозы безопасности, возникающей при изменении пользователями паролей через intranet или Internet, в IIS 5.0 данная функция по умолчанию (как в IIS 4.0) не активизируется. Чтобы дать пользователям это право, необходимо создать виртуальную папку IISADMPWD и дополнить метабазу новым элементом. При замене IIS 4.0 на IIS 5.0 эти операции не нужны. Прежде чем вносить какие-либо изменения, необходимо остановить и перезапустить Web-службу и создать резервную копию метабазы.

Во-первых, нужно выбрать Web-узел, в котором будет находиться виртуальный каталог, указывающий на установленную программу, позволяющую пользователям изменять пароли. Например, можно выбрать применяемый IIS 4.0 узел Default Web Site. Во-вторых, чтобы изменить метабазу, нужно ввести в каталоге \winnt\system32\inetsrv\adminsamples по приглашению командной строки:

Что такое IIS

простыми словами

(Internet Information Services) — программное обеспечение для развертывания веб-сервера. Входит в состав Windows.

Поддерживает работу по протоколам HTTP, HTTPS, FTP, SMTP, POP3.

IIS можно установить не только на Windows Server, но и на клиентскую версию операционной системы. Например, в Windows 10 установка выполняется из оснастки «Программы и компоненты» включением встроенного компонента Службы IIS. Для развертывания более новой версии, IIS можно скачать с сайта Microsoft.

Настройка IIS производится в консоли «Диспетчер служб IIS». Она устанавливается на любой компьютер в сети, позволяя управлять сервером удаленно, либо ставится непосредственно, на веб-сервер.

Возможности журналирования и анализа логов в IIS 8.5

В новой версии Internet Information Services 8.5, представленной в качестве роли веб сервера в Microsoft Windows Server 2012 R2, появилась новая возможность логирования. IIS теперь может писать HTTP-логи в особый журнал трассировки через службу трассировки событий Windows (Event Tracing for Windows — ETW). Благодаря механизму Event Tracing for Windows в IIS 8.5 появилась возможность отслеживать события на веб сервере в реальном времени, что крайне полезно при отладке веб-приложений и поиске неисправностей.

В предыдущих версиях IIS логи веб-сервера записывались в отдельные лог-файлы. Основной недостаток данного механизма – кэширования логов в оперативной памяти. Логи из кэша записываются (сбрасываются) на диск каждую минуты или по достижению объема 64Кб. Это значительно усложняло онлайн-траблшутинг в IIS, т.к. высока вероятность того, что событие, появление которого вы ожидаете, произошло, но информация о нем пока просто не записалась в лог файл, и, соответственно, вы его не сразу не увидите.

В этой статье мы покажем, как в IIS 8.5 задействовать службу трассировки событий Windows (ETW) и как проанализировать полученные логи с помощью Microsoft Message Analyzer.

По умолчанию IIS 8.5 записывает логи в обычные тестовые файлы. Чтобы включить логирование через ETW, нужно в панели управления IIS (Internet Information Services Manager), выбрать имя сервера и в правой панели щелкнуть по значку Logging.

В окне настройки параметров журналирования в разделе Log Event Destination выберете метод ведения журнала, переключившись со стандартного Log file only на ETW event only. Обратите внимание, что можно включить ETW и стандартное журналирование IIS одновременно (Both log file and ETW event). Сохраним изменения. Сразу после этого логи веб сервера IIS начнут писаться через службу трассировки событий Windows.

Для просмотра и анализа логов IIS в журналах ETW воспользуемся бесплатным инструментом Microsoft Message Analyzer, который можно скачать с сайта Microsoft по этой ссылке: _http://www.microsoft.com/en-us/download/details.aspx? >

Во время первого запуска Microsoft Message Analyzer спросит, хотите ли вы обновить элементы на стартовом экране. Выберите желаемое действие.

В открывшемся окне Message Analyzer настроим доступ к логам IIS ETW. Для этого щелкните по ссылке Capture/Trace в левой колонке и укажите имя трассировки.

В разделе Trace Scenario Configuration в поле Add Provider введите IIS и из появившегося выпадающего списка выберите Microsoft-Windows-IIS-Logging.

После того, как мы подключились к нужному провайдеру ETW, можно начать просмотр ( и сбор) событий, нажав кнопку Start With.

Собранные данные будут отображены в виде таблицы (если эта опция была указана при запуске).

Чтобы уменьшить количество отображаемой информации, можно применять различные фильтры. Допустим, нам нужно вывести данные, касающиеся только определенного сайта IIS.

Для этого в расширенном описании нужного события щелкнем по полю S_sitename и выберем Add Ssitename To Filter (добавить имя сайта в фильтр).

В окне фильтров появится сгенерированный текст кода фильтра. Если нажать кнопку Apply Filter, в окне журнала останутся только данные, которые относятся к указанному нами сайту.

Аналогичным образом можно добавить фильтр, например, позволяющий оставить в журнале только события с ответом сервера 404 (поле Sc_status).

Итак, в этом небольшом обзоре мы разобрались с новыми возможностями анализа и поиска неисправностей на веб сервере IIS, с помощью журналирования событий веб-сервера через систему ETW. Также мы показали как можно анализировать полученных данных с помощью Microsoft Message Analyzer.

C# Разработка

Блог о создании приложений на платформе .NET Framework

13 июля 2020 г.

Автозапуск и инициализация пула приложений на версий IIS 7.5, 8.0, 8.5 и 10.

Версия IIS Операционные системы
1.0 Windows NT 3.51
2.0 Windows NT 4.0
3.0 Пакет обновления 3 для Windows NT 4.0
4.0 Пакет Option Pack для Windows NT 4.0
5.0 Windows 2000
5.1 Windows XP Professional
6.0 Windows Server 2003
7.0 Windows Vista; Windows Server 2008
7.5 Windows 7; Windows Server 2008 R2
8.0 Windows 8; Windows Server 2012
8.5 Windows 8.1; Windows Server 2012 R2
10 Windows 10; Windows Server 2020

1. Открываем Configuration Editor выделив сверху свой сервер.

2. В Section выбираем system.applicationHost/applicationPools.

3. Выделяем строку (Collection), далее справа появится кнопка с троеточием. Нажимаем на неё.

4. В появившемся окне СНАЧАЛА выбираем ваш Application Pool сверху, затем снизу выбираем startMode -> AlwaysRunning. Закрываем окно Collection Editor.

5. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

1. В разделе Section выбираем system.applicationHost/sites.

2. Выделяем строку (Collection) далее справа нажимаем на кнопку с троеточием.

3. Первым делом надо выбрать сверху ваш сайт, затем в свойствах найти applicationDefaults, раскрыть его и в свойстве preloadEnabled выставить True.

4. Обязательно! Не забудьте нажать на кнопку «Сохранить«.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL