Cервер приложений Internet Information Services (IIS)




 

Администраторам и разработчикам Web-приложений необходим надежный, легкоуправляемый, высокопроизводительный и защищенный Web-сервер. В Internet Information Services (IIS) 6.0 и Microsoft® Windows® Server 2003 появилось много новых возможностей, обеспечивающих надежность, доступность, управляемость, масштабируемость и безопасность сервера Web- приложений.

IIS 6.0 - ключевой компонент платформы приложений Windows Server 2003 - представляет собой интегрированный набор сервисов и средств, обеспечивающих разработку и развертывание высокопроизводительных Web-сайтов, Web-приложений и Web-сервисов.

Роль сервера приложений в семействе продуктов Windows Server 2003 сочетает в себе следующие серверные технологии:

 

1. Internet Information Services (IIS) 6.0 Информационные службы Интернета (IIS) 6.0. Они являются полноценным веб-сервером, оптимизированным для запуска веб-приложений и служб на узле.

 

2. Microsoft.NET Framework;

Это компьютерная платформа, разработанная для упрощения разработки приложений в распределенной среде Интернета. Microsoft.NET Framework предоставляет среду для объектно-ориентированного программирования, гарантирующую безопасное выполнение кода, и исключает затруднения, связанные с обеспечением быстродействия сценариев. В Microsoft.NET Framework входят два основных компонента:

· общая языковая среда выполнения

· библиотека классов Microsoft.NET Framework.

ASP.NET использует общую языковую среду выполнения для предоставления таких базовых служб, как управление памятью, управления потоками и удаленный доступ, совмещенный со строгой системой защиты и другими формами, обеспечивающими безопасность и устойчивость кода. Основным назначением этой среды является управление кодом. Код, предназначенный для работы в ней, называется управляемым, а код, не предназначенный для работы в ней - неуправляемым.

Библиотека классов Microsoft.NET Framework - собрание повторно используемых объектов, которые можно применять при создании приложений ASP.NET.

 

3. ASP.NET это часть Microsoft.NET Framework. ASP.NET представляет собой откомпилированную среду, основанную на технологии.NET. Имеется возможность создавать приложения на любом совместимом с.NET языке, в том числе на Visual Basic.NET, C# и JScript.NET. Кроме того, возможности среды.NET Framework, в том числе управляемая общая языковая среда времени выполнения, безопасность типов и наследование, доступны любому приложению ASP.NET

 

4. ASP; Active Server Pages (ASP) - активные серверные страницы. Страницы ASP являются средой создания серверных сценариев для разработки динамических интерактивных приложений веб-серверов. Они позволяют разработчикам объединять нужным образом страницы в формате HTML, команды сценариев и компоненты COM для создания мощных и гибких веб-приложений.

 

5. UDDI-сервисы; UDDI (Universal Description, Discovery and Integration) - это промышленный стандарт публикации и поиска сведений о веб-службах. В некоторые продукты семейства Windows Server 2003 включаются службы UDDI, веб-службы, обеспечивающие использование возможностей UDDI на предприятиях или в организациях. Службы UDDI являются стандартной веб-службой XML. Они позволяют разработчикам предприятия эффективно изучать, открывать совместный доступ и повторно использовать веб-службы непосредственно через средства разработки. Они не включены в Windows Server 2003, Web Edition. Кроме того, Windows Server 2003, Standard Edition поддерживает только изолированную установку служб UDDI. Поддержка распределенной установки доступна в Windows Server 2003, Enterprise Edition и Windows Server 2003, Datacenter Edition. При изолированной установке служб UDDI компоненты веб-сервера UDDI и баз данных UDDI устанавливаются на один компьютер. При распределенной установке компоненты UDDI распределены по нескольким серверам.

 

6. COM+; расширение модели объектных компонентов (COM). COM+ основано на интегрированных службах и свойствах COM, облегчая разработчикам создание и использование компонентов программного обеспечения на любом языке и используя любые средства.

 

7. Microsoft Message Queuing (MSMQ). Сервер очередей сообщений Microsoft. Очередь сообщений создается для взаимодействия приложений в распределенной среде (на разных компьютерах). Особенность MSMQ в том, что компьютеры не обязательно должны быть одновременно в сети. То есть можно отправить сообщение, можно получить, а за всем этим следит сервер MSMQ.

 

Таким образом, сервер приложений позволяет разработчикам Web-приложений и администраторам осуществлять хостинг динамических приложений, например для управления базой данных приложений Microsoft ASP.NET, не надо устанавливать на сервере дополнительное программное обеспечение.

В Windows Server 2003 сервер приложений можно настроить двумя способами: через мастер Configure Your Server или из приложения Add/Remove Components.

Архитектура обработки запросов в IIS 6.0

Сложность кода Web-сайтов и приложений постоянно возрастает.

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

Таким образом, Web-сервер должен выполнять роль активного диспетчера среды выполнения приложения, автоматически определяя ошибки приложения и реагируя на них.

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

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

Также кардинально повышена надежность и масштабируемость благодаря применению модели изоляции процесса (называемую моделью изоляции рабочего процесса).

В дополнение увеличена производительность за счет поддержки кэширования и очередей запросов в режиме ядра.

В IIS 6.0 заложены две новые концепции

1. пулы приложений (application pools)

2. рабочие процессы (worker processes).

Пулы приложений применяются для управления набором Web-сайтов и приложений. Каждый пул приложения соответствует одной очереди запросов в HTTP.sys и одному или более Windows-процессам, обрабатывающим эти запросы.

IIS 6.0 поддерживает до 2 000 пулов приложений.

Одновременно могут работать несколько таких пулов. Например, сервер может выполнять приложение для учета кадров в одном пуле и бухгалтерское приложение - в другом.

То есть Интернет-провайдер (Internet Service Provider, ISP) может запускать Web-сайты и приложения одного клиента в одном пуле приложений, а Web-сайты второго клиента - в другом.

Пулы приложений отделяются друг от друга границами процессов в Windows Server 2003. Таким образом, приложения в одном пуле не влияют на приложения в другом; кроме того, запросы к приложениям нельзя перенаправлять из одного пула в другой.

Рабочий процесс обслуживает запросы к Web-сайтам и приложениям в пуле. Вся обработка Web-приложений, аутентификация и авторизация, выполняется новой библиотекой DLL Web – сервиса, которая загружается в один или несколько рабочих хост-процессов. Исполняемый файл рабочего процесса называется W3wp.exe.

 

В предыдущей версии IIS (IIS 5.0) один процесс, Inetinfo.exe, выполнял функции главного процесса Web-сервера. Он перенаправлял запросы к "внепроцессным" приложениям, размещенным в процессах DLLHost.exe.

IIS 6.0, напротив, состоит из двух новых компонентов:

1. Компонент WWW Service Administration and Monitoring Диспетчер пользовательского режима, управляющий работой сервера и следящий за выполнением кода приложения. Этот компонент не загружает и не исполняет код приложения. Другими словами компонент пользовательского режима, предназначенного для администрирования и мониторинга.

2. Стек HTTP режима ядра (HTTP.sys), который помещает в очередь и разбирает входящие HTTP-запросы, а также кэширует и возвращает контент сайта и приложения. HTTP.sys не загружает код приложения - он просто анализирует и перенаправляет запросы.

Таким образом, HTTP.sys в IIS принимает запросы и помещает их в очереди.

Каждая очередь запросов соответствует одному пулу приложений.

Так как HTTP.sys не выполняет код приложений, на него не влияют ошибки в коде пользовательского режима, обычно нарушающие нормальную работу Web-сервера.

В случае ошибки в приложении HTTP.sys продолжает принимать и помещать в очередь новые запросы до одного из следующих событий:

1. перезапуска процесса, который начнет принимать запросы,

2. исчерпания очередей,

3. отсутствия места в очередях

4. остановки администратором самого Web-сервиса.

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

Такая архитектура позволяет IIS 6.0 отделять операции Web-сервера от выполнения кода Web-сайта и приложения без ухудшения производительности.

 

Настройка сервера и управление рабочим процессом

 

При инициализации часть сервиса WWW, отвечающая за конфигурирование, использует хранящуюся в памяти конфигурационную метабазу для инициализации таблицы маршрутизации (routing table) пространства имен HTTP.sys.

Каждая запись в этой таблице содержит информацию, необходимую для перенаправления входящих URL пулу приложений, где находится сопоставленное с данным адресом приложение.

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

Все предварительные действия выполняются до того, как HTTP.sys приступает к перенаправлению запросов индивидуальным процессам.

По мере добавления новых приложений и их пулов Web-сервис настраивает HTTP.sys на прием новых адресов, создает новые очереди запросов для новых пулов приложений и указывает, куда перенаправлять новые URL. Для динамического изменения информации о маршрутизации перезапуск сервиса не требуется.

В роли управляющего рабочим процессом компонент WWW Service Administration и Monitoring отвечает за управление жизненным циклом рабочего процесса, обрабатывающего запросы.

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

 

Режим изоляции рабочего процесса

 

IIS 6.0 предоставляет новый режим изоляции приложения для управления обработкой Web-сайтов и приложений - режим изоляции рабочего процесса.

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

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

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

Первым делом HTTP.sys отправляет запросы, адресованные к Web-сайтам и приложениям, соответствующим очередям пулов приложений.

Затем рабочий процесс, обслуживающий пул приложений, извлекает запросы напрямую из очереди приложений в HTTP.sys. Такая модель позволяет избавиться от лишних переключений процессов, возникающих при отправке запросов внепроцессному DLLHost.exe и обратно (как в IIS 4.0 и 5.0), что увеличивает производительность.

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

Подобная архитектура не дает сбойному Web-сайту или приложению нарушить работу другого Web-приложения или самого сервера. В IIS 6.0 теперь можно выгрузить внутрипроцессный компонент, не останавливая Web-сервис.

Рабочий хост-процесс можно временно остановить, не затрагивая остальные рабочие процессы, обрабатывающие контент.

Дополнительное преимущество - возможность задействовать другие сервисы операционной системы, доступные на уровне процесса [например управление распределением процессорного времени (CPU throttling)] для пулов приложений. Кроме того, архитектура Windows Server 2003 поддерживает гораздо больше параллельных процессов, чем в предыдущих операционных системах.

Режим изоляции рабочего процесса не дает одному приложению или сайту остановить другие приложения.

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

включение/выключение сайта или приложения (независимо от остальных работающих сайтов или приложений),

· изменение используемого приложением компонента,

· отладку приложения,

· наблюдение за счетчиками производительности,

· регулирование ресурсов, выделяемых приложению.

Режим изоляции рабочего процесса в IIS 6.0 имеет следующие особенности.

1. Кэширование в режиме ядра.. В IIS 6.0 кэширование в режиме ядра осуществляется как в режиме изоляции рабочего процесса, так и в режиме изоляции IIS 5.0 (см. ниже). В качестве единой точки приема всех входящих (серверных) HTTP-запросов HTTP.sys создает высокопроизводительный канал связи для серверных HTTP-приложений и обеспечивает общее управление соединениями, регулирование полосы пропускания и протоколирование на стороне Web-сервера. IIS 6.0 основан на HTTP.sys и специально настроен на увеличение производительности Web-сервера. Кроме того, в некоторых случаях HTTP.sys напрямую обрабатывает запросы в ядре. Как статический, так и динамический контент Web-сайтов и приложений может помещаться в кэш HTTP.sys для уменьшения времени ответа.

2. Четкое разделение между пользовательским кодом и сервером. Весь пользовательский код обрабатывается рабочими процессами, полностью изолированными от ядра Web-сервера. Это важное усовершенствование по сравнению с IIS 5.0, так как ISAPI зачастую выполняются внутрипроцессно в ядре Web-сервера. Если ISAPI, загруженный в рабочий процесс, вызывает сбой или нарушение доступа к памяти, останавливается лишь рабочий процесс, выполняющий ISAPI. Тем временем сервис WWW создает новый рабочий процесс, заменяющий рухнувший. На остальные рабочие процессы это не оказывает никакого влияния.

3. Множественные пулы приложений. В IIS 5.0 приложения можно объединять во внепроцессный пул, но только в один, который выполняется в среде DLLHost.exe. Когда IIS 6.0 работает в режиме изоляции процессов, администраторы могут создать до 2 000 пулов приложений, причем каждый из них можно конфигурировать раздельно.

4. Улучшенная поддержка распределителей нагрузки. Благодаря пулам приложений IIS 6.0 поддерживает физическое разделение приложений. IIS 6.0 способен автоматически взаимодействовать с распределителями нагрузки (load balancers) или с коммутаторами для блокирования трафика к проблемному приложению, параллельно продолжая принимать запросы к другим приложениям. В IIS 6.0 также встроена модель расширения, позволяющая генерировать события и команды при обнаружении сбоя в конкретном приложении. Такая конфигурация позволят распределителям нагрузки и коммутаторам автоматически блокировать трафик к проблемным приложениям, не препятствуя запросам к работающим.

5. Web-сады (Web gardens). На обслуживание запросов, адресованных одному пулу приложений, можно настроить несколько рабочих процессов. По умолчанию каждому пулу соответствует один рабочий процесс. Однако пул можно настроить так, чтобы ему соответствовал набор из N эквивалентных рабочих процессов, разделяющих нагрузку. Такая конфигурация называется Web-садом. HTTP.sys распределяет запросы между рабочими процессами в группе. Распределение запросов основано на принципе карусели. Преимущества Web-садов в том, что, если один рабочий процесс замедляется, например, когда подсистема выполнения сценариев перестает отвечать, прием и обработка запросов продолжается остальными рабочими процессами.

6. Слежение за состоянием. Компонент WWW Service Administration and Monitoring следит за состоянием приложений, периодически проводя тестовый опрос рабочих процессов, чтобы выяснить, не заблокированы ли они. В случае блокировки рабочего процесса сервис WWW завершает рабочий процесс и создает вместо него новый. Сервис WWW поддерживает коммуникационный канал с каждым рабочим процессом и всегда в состоянии определить сбой в рабочем процессе по обрыву канала.

7. Привязка к процессорам (processor affinity). Рабочие процессы можно привязать к конкретным процессорам, чтобы увеличить частоту попаданий в кэш процессора (уровня L1 или L2). Реализация привязки к процессорам приводит к тому, что рабочие процессы IIS 6.0 выполняются на конкретных процессорах, и эта привязка распространяется на все рабочие процессы, обслуживающие Web-сайты и приложения в каком-либо пуле. Привязку к процессорам можно использовать в сочетании с Web-садами, выполняемым на многопроцессорных компьютерах, где под конкретные пулы приложений выделены кластеры процессоров.

8. Сопоставление сайтов и приложений с пулами приложений. В IIS 6.0, как и в IIS 5.0, приложения определяются как пространства. Сайты по умолчанию считаются простыми приложениями, в которых пространство имен сконфигурировано как приложение. Пул приложений можно настроить на обслуживание от одного Web-приложения до множества приложений и сайтов. Чтобы поместить приложение в пул, следует использовать IIS Manager или напрямую модифицировать метабазу.

9. Запуск по требованию. Пулы приложений позволяют запускать процессы, обслуживающие группу пространства имен по требованию, т. е. при первом запросе к URL, который является частью этого пространства имен. Компонент WWW Service Administration and Monitoring выполняет запуск процесса по требованию и в целом контролирует жизненный цикл рабочих процессов.

10. Время ожидания в простое. Пул приложений можно настроить на остановку собственных рабочих процессов, если они простаивают в течение определенного периода. Это нужно для освобождения неиспользуемых ресурсов. При необходимости для данного пула приложений запускаются дополнительные рабочие процессы (см. далее "Запуск по требованию").

11. Быстрая защита от сбоев. При сбое рабочий процесс обрывает коммуникационный канал с компонентом WWW Service Administration and Monitoring. Последний обнаруживает это и принимает меры, обычно включающие запись события в журнал и перезапуск рабочего процесса. Кроме того, IIS 6.0 можно настроить на автоматическую блокировку рабочего процесса, если в пуле приложений возникает определенное число сбоев за заданный период. Такое поведение называется быстрой защитой от сбоев (rapid-fail protection). Быстрая защита от сбоев переводит пул приложений в состояние "не обслуживается", и HTTP.sys немедленно возвращает сообщение 503 (Service Unavailable) на любые запросы к частям этого пространства имен, в том числе на запросы, уже помещенные в очередь этого пула приложений.

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

13. Повторное использование рабочих процессов. Сейчас многие организации страдают от проблем, связанных с тем, что Web-приложения вызывают утечки памяти, плохо написаны или содержат непонятные ошибки. Это вынуждает администраторов периодически перезапускать Web-серверы. В предыдущих версиях IIS способа перезапустить Web-сайт, не прерывая работу всего сервера, не было. Режим изоляции рабочего процесса можно настроить на периодический перезапуск рабочих процессов в пуле приложения для борьбы со сбойными приложениями. Рабочие процессы можно настроить на перезапуск в соответствии со следующими критериями: истекшим временем, количеством обслуженных запросов, временем суток, использованием виртуальной и физической памяти, а также по требованию. Когда рабочий процесс считает необходимым выполнить перезапуск, он уведомляет WWW-сервис, который в свою очередь дает команду на завершение существующим рабочим процессам и выделяет заданное время на обработку оставшихся запросов. Одновременно сервис WWW создает замещающий рабочий процесс для той же группы пространства имен, и новый рабочий процесс запускается до завершения работы старого. Это предотвращает перебои в обслуживании. Старый рабочий процесс поддерживает связь с HTTP.sys для завершения обработки своих запросов, а затем либо нормально завершает работу, либо его работа завершается извне, если он не остановился по истечении заданного периода.

14. Режим изоляции IIS 5.0 Некоторые приложения не совместимы с режимом изоляции рабочего процесса IIS 6.0, например приложения-фильтры, читающие необработанные данные, или приложения, полагающиеся на выполнение в Inetinfo.exe или DLLHost.exe. Поэтому IIS 6.0 способен работать в другом режиме изоляции, который называется режимом изоляции IIS 5.0 и обеспечивает совместимость. Использование этого режима напоминает работу с самим IIS 5.0, так как в нем присутствуют те же основные процессы пользовательского режима. В частности, есть те же методы изоляции приложений (низкий, средний в пуле и высокий), а Inetinfo.exe - по-прежнему главный процесс, через который проходят все запросы.

Система безопасности IIS

 

Система безопасности IIS использует преимущества стандартов безопасности Интернет, поддерживаемых Windows.

Fortezza (американский правительственный стандарт безопасности). Он удовлетворяет архитектуре безопасности, поддерживая механизм шифрования, обеспечивающий конфиденциальность, целостность и подлинность сообщений, аутентификацию, контроль доступа к сообщениям, компонентам и системам. Эти функции реализуются как при помощи ПО сервера и браузера, так и при помощи аппаратных средств.

Secure Sockets Layer (SSL). Протоколы безопасности SSL широко используются Web-браузерами и серверами для аутентификации, конфиденциальности и целостности сообщений. При помощи функций безопасности SSL можно проверить целостность содержания Web-сервера, реквизиты пользователей и шифровать передаваемые по сети сообщения.

Transport Layer Security (TLS). TLS основан на SSL. Он помогает выполнять безопасную аутентификацию пользователей, а независимым программистам позволяет создавать поддерживающий TLS код, способный обмениваться зашифрованной информацией с другим процессом без ознакомления с кодом, созданным другим программистом. Кроме того, TLS является каркасом для построения новых методов шифрования с открытым ключом и шифрования больших объемов данных. TLS служит и для повышения производительности, уменьшая сетевой трафик и предлагая схему кэширования сессий, позволяющую сократить количество соединений, устанавливаемых «с нуля».

PKCS #7. Этот протокол описывает формат зашифрованных данных, например цифровых подписей или цифровых конвертов.

PKCS #10. Этот протокол описывает формат посылаемых сертификационным центрам (Certificate Authority, CA) запросов на получение сертификата.

Обычная проверка подлинности. Обычная аутентификация — стандартный метод сбора информации об именах пользователей и паролях. Она посылает пароли по сети в формате Base64 Encoded. К ее достоинствам можно отнести то, что она является частью спецификации HTTP 1.0 и поэтому поддерживается большинством браузеров. Однако обычная аутентификация имеет существенный минус — использующие ее Web-браузеры пересылают пароли в незашифрованном виде.

Краткая проверка подлинности. Она обладает теми же возможностями, что и обычная но передает аутентификационные сведения иначе.

Они проходят через одношаговый процесс — хеширование (hashing). Результат этого процесса называется хешем (hash), или выборкой сообщения (message digest). Исходный текст не может быть расшифрован из хеша. Перед хешированием к паролю добавляется дополнительная информация генерируемая сервером, поэтому никто не сможет перехватить хеш пароля и с его помощью выдавать себя за истинного клиента. Краткая аутентификация основана на методологии общего секретного пароля. Она структурирована для использования несколькими прокси-серверами. Краткая аутентификация поддерживается не всеми обозревателями. Если не поддерживающий краткую аутентификацию браузер пошлет запрос на сервер, требующий именно этот способ аутентификации, сервер не будет обрабатывать запрос и сообщит клиенту об ошибке.

Механизмы безопасности

Путем проверки подлинности можно удостовериться в личности каждого клиента, запрашивающего доступ к Web-узлам.

IIS поддерживает для служб HTTP и FTP:

1. анонимную проверку подлинности HTTP и FTP;

2. обычную проверку подлинности HTTP и FTP;

3. краткую проверку подлинности для доменов Windows 2000 и браузеров, поддерживаю щих этот способ аутентификации, реализованный в HTTP I.I;

4. интегрированную проверку подлинности Windows (только HTTP).

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: