Сергей Яремчук
Что нового в IIS 7.0
Вместе с выходом Windows Server 2008 администраторы получили в свое распоряжение не только новую версию ОС, но и целый комплект приложений и сервисов. Обновленый IIS теперь с уже номером 7, стал больше, чем веб-сервер.
Набор серверов IIS (Internet Information Services) многие администраторы откровенно недолюбливают. По нескольким причинам. Основная из них – наличие в предыдущих версиях критических ошибок, хотя в IIS 6.0 особых проблем с безопасностью уже не было.
Но IIS все равно пользуется популярностью, и в первую очередь благодаря тому, что входит в комплект операционной системы. Поэтому его очень просто установить и легко интегрировать в среду Windows.
По данным Netcraft [1] IIS используется на 37% интернет-сайтов, что, согласитесь, немало. Конкурент Apache обошел его на 10%, но в последнее время наметилась тенденция к сокращению этого разрыва. В списке компаний, входящих в рейтинг Fortune 1000 [2], IIS доминирует над Apache с показателем 55% и 24.9% соответственно.
Дизайн IIS 7.0 значительно переработан. Можно даже сказать, что перед нами существенно новый продукт, содержащий большое число новинок, которые будут интересны для специалистов разного рода деятельности. Появление новой версии этого веб-сервера является весьма сильным аргументом, говорящим в пользу перехода на Windows 2008. Официальную информацию об изменениях во внутренностях новинки можно просмотреть на сайте Microsoft.
Я предлагаю сосредоточиться на инструментах, с которыми в первую очередь придется столкнуться администратору. Ведь новичка принято встречать по одежке.
Установка и модули
Многие моменты в установке и настройке IIS 7.0 упрощены и стали более прозрачными, возможно, благодаря этому удастся избежать проблем с неправильной настройкой веб‑сервера.
В целях повышения безопасности IIS 6.0 по умолчанию не устанавливался, с IIS 7.0 поступили точно так же. Процесс его инсталляции изменился и стал даже проще.
Теперь это одна из ролей, которую можно установить при помощи «Initial Configuration Tasks», который появляется при загрузке системы или через диспетчер сервера (Server Manager).
Нажимаем «Add Role», появляется мастер Add Roles Wizard, который за 4 шага поможет установить нужный компонент.
После выбора «Web Server IIS», будут проанализированы уже имеющиеся сервисы и компоненты (features), и случае необходимости будет выдан запрос на установку недостающих.
В IIS 7.0 концепция пулов приложений, использованная в IIS 6.0, расширена за счет использования компонента NET Framework 3.0 – Windows Process Activation Service (WAS). WAS делает доступным пул приложений не только для HTTP, но и для других протоколов. Также он на себя берет управление настройками для сайтов и приложений, а также и поддержку жизненного цикла процессов, запуская и останавливая их по мере необходимости и контролируя их работу.
Кстати, динамический запуск и остановка приложений – это одна из новинок Windows Server 2008, обеспечивающая более эффективное использование системных ресурсов.
Если компонент WAS еще не установлен, он будет указан в качестве одной из зависимостей вместе со своими составляющими: Process Model, Configuration API и .NET Environment (см. рис. 1).
Рисунок 1. Установка Windows Process Activation Service
В IIS реализован тот же подход, что в Windows 2008. Администратор устанавливает лишь минимальный набор, а уже затем добавляет действительно необходимые в работе функции, хотя, соглашусь, что это уже требует некоторой подготовки.
Windows Server 2008 функционально состоит из ролей и компонентов, которые также не являются неделимыми, а разбиты на модули. В терминологии Windows такие модули называются службами ролей (Role Services). Большая часть ролей состоят из нескольких Role Services.
Модульная структура призвана уменьшить число возможных уязвимостей, а также количество обновлений, так как неустановленные и неиспользуемые компоненты обновляться не будут. Теперь администратор, по сравнению с IIS 6.0, получает больший контроль на веб-сервером.
В поставке IIS имеются 40 Role Services, каждый из которых устанавливается независимо (см. рис. 2).
Рисунок 2. Выбор модулей IIS в процессе установки
По умолчанию выбрано 9 из них, которые обеспечивают только основные функции HTTP, статическое содержимое и его сжатие, ведение журнала, монитор и фильтрацию запросов. Плюс будет установлена консоль управления IIS (IIS Manager).
Для удобства выбора Role Services разделены на 8 подкатегорий.
Среди категорий особое внимание хотелось бы обратить на IIS 6.0 Management Compatibility (совместимость метабазы IIS 6), отвечающий за совместимость по API с предыдущей версией веб-сервера. Например, при установке Microsoft Exchange Server 2007 активация этого пункта обязательна.
Дополнительный модуль FastCGI обеспечивает быструю обработку Perl, PHP, Ruby и других веб-технологий, позволяя обслуживать большее число пользователей.
Используя диспетчер сервера, в любой момент можно очень просто удалить или добавить нужный Role Services.
При выборе некоторых Role Services могут также быть запрошены дополнительные компоненты.
При работе в Server Core в IIS доступны не все Role Services. В минимальной конфигурации IIS устанавливается одной командой:
> Pkgmngr.exe /iu:IIS-WebServerRole; WAS-WindowsActivationService; WAS-ProcessModel
Как вариант можно использовать командный или XML-файл. В дальнейшем управлять его работой можно при помощи утилиты appcmd.exe. Последняя имеет большое количество параметров, чтобы просмотреть полный их список достаточно ввести «appcmd /?».
Также в IIS 7.0 добавлен новый интерфейс API – Microsoft.Web.Administration и новый поставщик WMI, которые предоставляют большое поле деятельности для создания автоматизации управления путем создания сценариев и средств для управления IIS.
Настройку IIS также можно произвести путем непосредственного редактирования .config-файлов.
Файлы настроек
В IIS 7.0 по сравнению с предыдущей версией используются простые и понятные .config-файлы в формате XML, располагающиеся в тех же файлах, используемых системой настройки ASP.NET.
Параметры сервера и параметры веб-узла хранятся отдельно. В Apache подобная схема реализована давно, и мне кажется более прозрачной и удобной.
Параметры сервера хранятся в файле applicationHost.config, который находится в папке %systemroot%\windows\system32\inetsrv\config. Здесь указаны параметры всех установленных модулей, узлов, пулов приложений, безопасности и прочее. В этом же каталоге имеется файл administration.config, в котором регистрируются модули и некоторые другие связанные настройки.
Параметры отдельных веб-узлов хранятся в файлах web.config, для каждого узла на сервере существует свой web.config. В них находится описание документа по умолчанию, параметры приложений и ASP.NET.
Система настроек не зависит от компьютера, и теперь без проблем все настройки можно производить на тестовой системе, а затем после тестирования достаточно скопировать .config-файлы на рабочие серверы.
Для удобства переноса поддерживаются переменные, и если на серверах установлен один и тот же набор модулей, проблем с работой быть не должно. Причем переносимость конфигурационных файлов позволяет использовать один .config-файл на всех узлах фермы.
Такая функция получила название Shared Configuration. После создания такого файла администратор его экспортирует, во избежание попытки его подделки следует ввести пароль ключа шифрования.
Для включения на другом сервере достаточно выбрать одноименный пункт, активировать флажок «Enable shared configuration», указать путь к файлу настроек, ввести необходимые для доступа учетные данные и пароль шифрования.
Консоль управления IIS
После установки IIS получает свою вкладку в Server Manager, где доступны настройки модулей и вывод связанных событий.
В поле «Resources and Support» показаны основные рекомендации по эффективной настройке IIS.
Но основные настройки производятся в консоли управления IIS Manager (см. рис. 3). Интерфейс последнего существенно переработан, и главное он стал на порядок проще и понятнее в использовании, что, учитывая большее количество функций, доступных в IIS 7.0, не может не радовать.
Рисунок 3. Консоль управления IIS Manager
IIS Manager не является оснасткой MMC. Поддерживается подключение к удаленным серверам по протоколу НТТР или HTTPS без использования внутренних протоколов Windows.
Для подключения к серверу, сайту или приложению достаточно перейти в «Start Page» и выбрать нужную задачу в поле «Connection Task». Запустится простой мастер подключения, который поможет произвести все нужные действия. Естественно, в целях безопасности такие соединения можно ограничить или полностью блокировать.
Интерфейс IIS Manager выполнен в том же стиле, что и Server Manager, и визуально разделен на три части.
В левой панели выводятся все веб-серверы, к которым он подключен, сайты и пулы приложений отображаются в виде раскрывающегося дерева. Выбор любого пункта приведет к появлению специфических для него настроек в рабочей области в центре и задач в правом.
В рабочей области доступны все функции управления IIS, которые в ранней версии были распределены по разным вкладкам, теперь искать ничего не нужно, каждый имеет понятный значок, поэтому разобраться в доступных функциях просто.
Так как консоль является приложением WinForm, его возможности легко расширить, добавив сторонние модули.
В этом же окне находятся параметры настройки для ASP.NET, что избавляет от необходимости использовать дополнительные инструменты, а также функции делегирования управления.
Последняя функция весьма удобна и востребована, так как позволяет снизить нагрузку на персонал, передав часть полномочий непосредственно владельцу сайта.
Кроме настроек, консоль IIS позволяет быстро разрешать проблемы с веб-узлами и приложениями, выводя всю возможную диагностическую информацию в реальном времени начиная с момента получения сервером запроса и его прохождения по всем элементам.
Выбрав пункт «Worker Processes», можно получить данные о том, как долго выполняется запрос, приложение его выполняющее, загрузку процессора.
Дважды щелкнув по интересующему событию, администратор может получить более подробную информацию (URL, IP-адрес клиента, состояние, название модуля и время).
Выбрав «Logging», можно настроить параметры ведения журнала, в который включить любое интересное событие, которое может заинтересовать администратора в случае возникновения сбоев.
Если установлен модуль Tracing, администратор может активировать трассировку любых событий.
При необходимости для URL можно сконфигурировать обработчики, которые будут собирать данные, подпадающие под определенный критерий.
Диагностикой, кроме консоли IIS, можно управлять при помощи appcmd и через WMI.
Кроме настроек, при помощи консоли можно быстро получить доступ к содержимому конкретного сайта и при необходимости выполнить с ним определенные действия (установить разрешения, виртуальный каталог, произвести откат к предыдущей версии файла и другие установки). При наличии большого количества серверов и сайтов это очень удобно.
Дополнительную информацию о IIS можно получить на сайте, посвященном IIS 7.0 [3], где доступны и дополнительные инструменты вроде варианта IIS Manager, который используется для удаленного управления IIS с компьютеров, работающих под ранними версиями Windows XP/2003 и Vista, IIS7 Administration Pack и других.
Заключение
Перед нами совершенно другой продукт с новой архитектурой и возможностями, сочетающий большую функциональность, с гибкостью и понятностью в настройке. Модульность позволяет оптимально настроить и обезопасить систему. Администратор получил в свое распоряжение целый комплект необходимых в работе инструментов. А сможет ли он обойти Apache? Сможет ли занять лидирующее положение? Покажет время.
Удачи!
- Сайт Netcraft – http://www.netcraft.com.
- Top веб-серверов в организациях из Fortune 1000 – http://www.port80software.com/surveys/top1000webservers.
- Официальный ресурс Microsoft, посвященный IIS – http://www.iis.net.