Internet Information Services
IIS (Internet Information Services, до версии 5.1 — Internet Information Server) — проприетарный набор серверов для нескольких служб Интернета от компании Microsoft. IIS распространяется с Windows NT.
Internet Information Services | |
---|---|
Тип | проприетарное программное обеспечение и HTTP-сервер[d] |
Разработчик | Майкрософт |
Написана на | C++ |
Операционная система | Windows NT |
Последняя версия | |
Читаемые форматы файлов | Internet Data Query File[d][1] |
Сайт | iis.net (англ.) |
Основным компонентом 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