Internet Information Services 6 (IIS 6)
Если вы планируете использовать Windows Server 2003 для хостинга веб-сайтов и динамических веб-приложений, то обнаружите, что внесены некоторые существенные изменения в Internet Information Services (IIS) на этой новой платформе. Версия 6 IIS улучшена в компонентах, касающихся безопасности, надежности, масштабируемости, управляемости и производительности. Важно, чтобы вы знали об этих изменениях, если хотите по-настоящему использовать возможности новой версии. Описание IIS дается в приложении, поскольку IIS в Windows Server 2003 является обычно дополнительным компонентом, который не устанавливается по умолчанию. Исключением является версия Web Edition, в которой IIS и многие зависимые компоненты этой службы устанавливаются по умолчанию. Web Edition - это специализированный продукт, который доступен только путем предустановки через каналы OEM (от изготовителей комплексного оборудования), поэтому мы рассмотрим здесь версии Standard Edition и Enterprise Edition Windows Server 2003.
- Сбой приложения с низкой защитой мог вызвать "зависание" inetinfo.exe, что могло приводить к отказу веб-сервера в целом.
- Приложения с высокой защитой требовали большого объема дополнительной информации и имели низкую производительность по сравнению с приложениями, включенными в пул.
- Поддерживался только один пул приложений, ограничивая масштабируемость сервера для хостинга веб-приложений.
Ввиду этих ограничений архитектура в IIS 6 была переработана, чтобы все приложения выполнялись в виде пула процессов с поддержкой нескольких пулов вместо одного. Это означает, что разработанный пользователем код не выполняется в виде отдельного процесса, поэтому сбойные приложения больше не вызывают отказа всего сервера. Давайте рассмотрим, как это происходит.
Режимы изоляции
IIS 6 имеет двойственную архитектуру, которая может действовать в одном из двух режимов.
- Режим изоляции IIS 5.Этот режим эмулирует IIS 5, чтобы приложения, разработанные для прежней платформы (Windows 2000 Server) можно было выполнять без проблем в Windows Server 2003.
- Режим изоляции рабочих процессов (worker process isolation mode).Этот режим поддерживает все улучшения в архитектуре IIS 6, включая пулы приложений, веб-сады (web garden), мониторинг состояния (health monitoring), повторяемый запуск рабочего процесса (worker process recycling) и родственность процессоров (processor affinity).
Если выполнить установку Windows Server 2003 "с нуля" и затем установить компоненты IIS 6, то ваш сервер будет работать в режиме изоляции рабочих процессов. В случае модернизации машины Windows Server 2003, где работала IIS 5, ваш сервер будет работать в режиме изоляции IIS 5. Если вы решили выполнить модернизацию, проверьте свои приложения после этой модернизации; если они работают должным образом, перейдите на режим изоляции рабочих процессов, чтобы можно было использовать новые средства, доступные в этом режиме.
Пулы приложений
В IIS 5 приложения запускались по умолчанию на среднем уровне защиты [Medium (Pooled)] внутри хост-процесса с именем svchost.exe. В режиме изоляции рабочих процессов IIS 6 приложения группируются в несколько пулов, которые называются пулами приложений, причем каждый пул приложений обслуживается одним или несколькими рабочими процессами (worker processes) - экземплярами w3wp.exe. Каждый пул приложений можно конфигурировать отдельно, и приложения можно перемещать из одного пула в другой. Это дает повышение надежности, поскольку отказавшее приложение может влиять только на приложения своего пула, но не приложения других пулов.
Очереди запросов в режиме ядра
Чтобы повысить производительность IIS, обработка запросов HTTP перенесена в новый компонент режима ядра, HTTP Listener (http.sys), который находится в стеке TCP/IP данного сервера. Поступающие запросы помещаются в очередь для обработки, причем каждый пул приложений имеет свою собственную отдельную очередь. Это повышает надежность IIS, поскольку поступающие запросы остаются в очереди даже в случае отказа одного из приложений. После возврата этого приложения в работу запросы продолжают извлекаться из очереди, и ничего не теряется.
Веб-сады
Еще одним нововведением в IIS 6 является поддержка так называемых веб-садов (web garden). Веб-сад - это пул приложений, обслуживаемый несколькими рабочими процессами, между которыми распределяется нагрузка, и которые обеспечивают отказоустойчивость в случае непредусмотренного прекращения одного процесса. Веб-сады повышают также степень масштабируемости IIS 6, позволяя одному серверу одновременно содержать тысячи приложений и делая IIS 6 превосходной платформой для сред поставщиков услуг.
Повторяемый запуск рабочего процесса
Приложения иногда содержат сбойный код, который вызывают утечки памяти и другие состояния ошибок. Чтобы продолжать выполнение приложений, для более ранних версий IIS приходилось периодически выполнять перезагрузку; в IIS 6 удалось устранить это требование с помощью нового средства - повторяемого запуска рабочего процесса (worker process recycling). Администраторы могут задать, чтобы рабочий процесс, обслуживающий неисправное приложение, периодически перезапускался для снятия утечек памяти, чтобы они не доходили до критического уровня, приводящего к прекращению работы этого приложения. Средство повторяемого запуска можно также сконфигурировать для запуска нового рабочего процесса, прежде чем будет прекращен старый процесс; это средство называют перекрывающимся повторяемым запуском (overlapped recycling), что гарантирует непрерывность обслуживания с точки зрения клиента.
Запуск по требованию и тайм-аут простоя
Для экономии полезных ресурсов процессора и памяти в IIS 6 реализован запуск по требованию. С помощью этого средства рабочий процесс, связанный с определенным пулом приложений, не запускается, пока приложение не получит первый запрос HTTP. В IIS 6 поддерживается также тайм-аут простоя (idle time out), то есть средство, которое закрывает простаивающие рабочие процессы после заданного временного интервала (тайм-аута), освобождая неиспользуемые ресурсы для использования другими процессами.
Мониторинг состояния, работа с неотвечающим процессом и защита от частых сбоев
Рабочие процессы управляются службой веб-администрирования WAS (Web Administration Service) - новым средством IIS 6, которое реализуется как компонент службы WWW Service. В дополнение к повторяемому запуску рабочих процессов служба WAS периодически опрашивает (с помощью команды ping) рабочие процессы для мониторинга их состояния. Если рабочий процесс блокирован и не может ответить, служба WAS прекращает этот процесс и запускает новый процесс для его замены. Альтернативно службу WAS можно сконфигурировать таким образом, чтобы оставлять работающим неотвечающий процесс, пока WAS запускает его замену.
Это полезно в сценариях разработки, когда к неотвечающему процессу может быть подсоединен отладчик, чтобы определить источник неисправности. Если приложение настолько неисправно, что рабочий процесс неоднократно зависает, то можно использовать средство, которое называется защитой от частых сбоев (rapid fail protection), чтобы вывести соответствующий пул приложений из эксплуатации, пока не будет разрешена проблема.
Родственность процессоров
Дополнительной возможностью в IIS 6 является расширенная поддержка платформ оборудования симметричной мультипроцессорной обработки (SMP). Используя родственность процессоров (processor affinity), отдельные рабочие процессы могут назначаться конкретным центральным процессорам (ЦП) для повышения производительности больших критически важных приложений.
Метабаза XML
Формат метабазы, то есть файла, содержащего информацию о конфигурации IIS, можно изменять в IIS 6 с двоичного формата, который использовался в более ранних версиях, на текстовый XML-файл. Это делает метабазу более удобной для редактирования (можно использовать простой текстовый редактор, например, Notepad) и позволяет быстрее перезапускать IIS. В метабазу также включены следующие новые возможности.
- Редактирование во время работы.Возможность прямого редактирования метабазы во время работы IIS.
- Журнал изменений метабазы.Средство, которое отслеживает все изменения, внесенные в метабазу, и упрощает восстановление IIS, если вы допустили ошибки в конфигурации.
- Независимая от сервера резервная копия.Создавая защищенную паролем резервную копию метабазы, вы можете копировать всю конфигурацию IIS на другую машину, что позволяет вам легко клонировать конфигурации IIS для более быстрого развертывания.
Более высокий уровень безопасности
Более высокий уровень безопасности - это второе по значимости улучшение в IIS 6 по сравнению с предыдущими версиями. IIS теперь не устанавливается по умолчанию при установке "с нуля" операционной системы; когда вы устанавливаете IIS, она конфигурируется в блокированном состоянии, позволяющем обслуживать только статическое содержимое. Прежде чем приступить к обслуживанию динамического содержимого клиентов, вы должны активизировать такие средства, как ASP, ASP.NET, CGI и ISAPI, позволяющие запускать веб-приложения. Это означает, что вы можете активизировать именно те компоненты, которые вам требуются, и оставить отключенными остальные компоненты, что является огромным улучшением в безопасности для данной платформы. Возможности для динамического содержимого активизируются и отключаются с помощью нового узла Web Service Extensions (WSE) в оснастке IIS Manager, которую мы вскоре рассмотрим.
Другие улучшения в безопасности
Новая платформа содержит также другие улучшения в безопасности.
- Имя NetworkService с низкими привилегиями используется как контекст безопасности по умолчанию, в котором запускаются рабочие процессы, - в отличие от учетной записи LocalSystem с высокими привилегиями, используемой процессом svchost.exe в IIS 5.
- Учетную запись, под которой выполняются рабочие процессы, можно конфигурировать вручную, что позволяет администраторам использовать отдельные контексты безопасности для различных пулов приложений, чтобы обеспечивать более высокие уровни безопасности и надежности.
- Включена поддержка для двух новых методов аутентификации: расширенная digest-аутентификация, которая действует через брандмауэры и прокси-серверы, и аутентификация .NET Passport, которая позволяет пользователям использовать службу Passport как единственную службу входа для веб-услуг, выполняемых в IIS.
- Запросы файлов с неизвестными расширениями имен теперь отклоняются по умолчанию, хотя для работы с такими расширениями можно использовать символы подстановки.
- Анонимные пользователи теперь не могут запускать исполняемые файлы, находящиеся в системной папке, такие как cmd.exe.
- По умолчанию анонимным пользователям запрещается доступ по записи к веб-содержимому (для учетной записи IUSR_имя-компьютера заданы полномочия Deny Write).
- Можно использовать Group Policy, чтобы запрещать пользователям установку IIS на машинах, к которым они имеют доступ.
Повышение управляемости
В дополнение к консоли IIS Manager в меню Administrative Tools имеется также ряд других способов эффективного управления машинами IIS 6.
- Remote Desktop (Удаленный рабочий стол).Известное раньше на платформе Windows 2000 Server под названием Terminal Services в режиме Remote Administration Mode, это средство устанавливается по умолчанию в Windows Server 2003 и его можно активизировать с помощью одного флажка во вкладке Remote утилиты System, вызываемой из панели управления (Control Panel). Remote Desktop рассматривается в лекции. 3 курса "Внедрение, управление и поддержка сетевой инфраструктуры MS Windows Server 2003".
- WISA (Web Interface for Server Administration - Веб-интерфейс для администрирования сервера).Установив компонент IIS 6 Remote Administration (HTML), вы можете использовать веб-браузер, например, Internet Explorer, для администрирования многих аспектов IIS (и некоторых общих аспектов Windows Server 2003) из удаленных точек. WISA реализован как ASP-приложение и устанавливается по умолчанию в версии Web Edition.
- WMI (Windows Management Instrumentation).В IIS 6 включен встроенный провайдер WMI, который позволяет вам писать скрипты для управления большинством аспектов IIS из командной строки. Ряд таких скриптов включен вместе с IIS 6 в папку \system32 и может быть использован для создания веб-сайтов и FTP-сайтов, создания виртуальных папок, включения и отключения расширений веб-служб, создания резервных копий метабазы и т.д. Вы можете запускать эти скрипты в сеансе командной строки на машине с IIS, с удаленной машины с помощью Remote Desktop или с помощью службы Telnet.
Рассмотрим выполнение некоторых базовых административных задач в IIS 6 и реализацию многих новых средств, поддерживаемых этой платформой.
Установка IIS
Самый простой способ установки IIS - это использование страницы Manage Your Server (Управление вашим сервером), которая автоматически открывается, когда вы загружаете свой компьютер. Если эта страница не открыта, то вы можете открыть ее и установить IIS, добавив роль сервера приложений (Application Server). Чтобы добавить роль Application Server, выполните следующие шаги.
- Установите CD с продуктом Windows Server 2003 в накопитель CD-ROM, чтобы получить доступ к файлам программы установки (Setup).
- Щелкните на кнопке Start (Пуск) и выберите пункт Manage Your Server вверху меню Start.
- Щелкните на ссылке Add or Remove a Role (Добавить или удалить роль), чтобы открыть мастер конфигурирования вашего сервера Configure Your Server Wizard.
- Щелкните на кнопке Next, чтобы проверить сетевое соединение.
- Выберите в списке доступных ролей Application Server (IIS, ASP.NET) и щелкните на кнопке Next.
- Выберите необязательные компоненты IIS (например, ASP.NET или FrontPage Server Extensions), которые тоже хотите установить.
- Щелкните на кнопке Next, чтобы увидеть сводку компонентов, которые вы готовы установить.
- Щелкните на кнопке Next, чтобы установить и сконфигурировать IIS на вашей машине.