Internet Information Services
Internet Information Services | |||
---|---|---|---|
Тип | проприетарное программное обеспечениеиHTTP-сервер[вд] | ||
Разработчик | Майкрософт | ||
Написана на | C++ | ||
Операционная система | Windows NT | ||
Последняя версия | |||
| |||
Сайт | iis.net(англ.) |
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 % от общего числа веб-сайтов[2].
Версии 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 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 поддерживает следующие методыаутентификации,то есть определения личности пользователя по имени и паролю:[3]
- Анонимная аутентификация (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)[4]— для аутентификации используется служба.NET Passport.
- Аутентификация с использованием клиентского сертификата (certificate authentication) — для аутентификации пользователь должен предоставитьSSL-сертификат.
Реализация веб-приложений для IIS
[править|править код]Веб-сервер IIS поддерживает несколько различных технологий созданиявеб-приложений:
- ASP.NET— разработанная Microsoft технология; для IIS это — основное на сегодняшний день[5]средство создания веб-приложений ивеб-служб.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[6],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 почтовые подсистемы.
Примечания
[править|править код]- ↑https://www.filesuffix.com/en/extension/idq
- ↑June 2015 Web Server Survey(англ.).Дата обращения: 12 июля 2015.Архивировано13 июля 2015 года.
- ↑Authentication Methods Supported in IIS 6.0 (IIS 6.0) .IIS 6.0 Documentation.Microsoft corporation. Дата обращения: 13 июля 2011. Архивировано изоригинала5 августа 2012 года.
- ↑Changes Between IIS 6.0 and IIS 7 Security .IIS.net.Microsoft Corporation (7 февраля 2010). Дата обращения: 13 июля 2011. Архивировано изоригинала5 августа 2012 года.
- ↑Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 2.0 с примерами на C# 2005 для профессионалов
- ↑FastCGI для IIS (technical preview 2) .Дата обращения: 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.
Ссылки
[править|править код]- iis.net(англ.)— официальный сайт Internet Information Services
- MSDN IIS 7.0(рус.)— Обзор веб-сервера для операционной системыWindows Vista.
- IIS 6.0 Documentation(англ.)— документация по IIS 6.0 на сайте Windows Server TechCenter.
- Internet Information Services 7.0 FAQ(англ.)
- PHP on IIS7
- Технический центр по IIS
- Понимание установки в IIS 7.0
- Настройка связки IIS + PHP + MySQL + phpMyAdmin для Windows7(Профессиональная и Максимальная)(рус.)
- Установка IIS7 в Windows Vista и Windows 7
- Доклад о расширении возможностей IIS7 подручными средствами
- Доклад «Усовершенствования IIS 7.0: производительность»
- Доклад «Усовершенствования IIS 7.0: безопасность»
- Доклад об установке и настройке IIS 7.0