Interested Article - Internet Information Services

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

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

Версии 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 Пакет для 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 2016 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 для каждого зарегистрированного посетителя сайта. Поэтому в последнем случае разработчикам сайтов и веб-приложений обычно приходится использовать собственные механизмы ограничения доступа. Начиная с 8 версии, появилась возможность удаленного управления, с помощью Powershell .

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

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

  • Анонимная аутентификация ( 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) — для аутентификации используется служба .NET Passport .
  • Аутентификация с использованием клиентского сертификата ( certificate authentication ) — для аутентификации пользователь должен предоставить SSL -сертификат.

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

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

  • ASP.NET — разработанная Microsoft технология; для IIS это — основное на сегодняшний день средство создания веб-приложений и веб-служб . 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 , ISAPI и SSI. Все остальные технологии являются надстройками, работающими через CGI, FastCGI или ISAPI.

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

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

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

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

Примечания

  1. (англ.) . Дата обращения: 12 июля 2015. 13 июля 2015 года.
  2. . IIS 6.0 Documentation . Microsoft corporation. Дата обращения: 13 июля 2011. Архивировано из 5 августа 2012 года.
  3. . IIS.net . Microsoft Corporation (7 февраля 2010). Дата обращения: 13 июля 2011. Архивировано из 5 августа 2012 года.
  4. Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов
  5. . Дата обращения: 27 мая 2009. 26 ноября 2007 года.

Литература

  • Станек Уильям Р. Internet Information Services (IIS) 7.0. Справочник администратора. — СПб. : , 2009. — 528 с. — ISBN 978-5-7502-0383-3 .
  • Адамc Крис. Администрирование сервера IIS 7. — М. : , 2010. — 362 с. — ISBN 978-5-9518-0367-2 .

Ссылки

  • (англ.) — официальный сайт Internet Information Services
  • (рус.) — Обзор веб-сервера для операционной системы Windows Vista .
  • (англ.) — документация по IIS 6.0 на сайте Windows Server TechCenter.
  • (англ.)
  • (рус.)
Источник —

Same as Internet Information Services