Кэширование ISA Server. Настройка и тестирование Web-кэша ISA Server

Как следует из названия Microsoft Internet Security and Acceleration (ISA) Server, этот продукт является не только защитным сетевым экраном (брандмауэром), но и службой, которая ускоряет доступ в Internet, используя возможности кэширования. ISA Server сохраняет в кэше часто применяемые адреса URL и объекты (т. е. содержимое, связанное с этими URL) в памяти и в кэш-файле (файлах) на жестком диске ISA Server. ISA Server кэширует запросы обоих направлений, как прямого (forward proxying), т. е. когда внутренние клиенты запрашивают внешние URL-объекты, так и обратного (reverse proxying), когда внешние клиенты запрашивают внутренние опубликованные URL-объекты. В этой статье сначала речь пойдет о поведении ISA Server при кэшировании и о том, как настроить правила кэширования маршрутов. Затем я расскажу о присущих ISA Server возможностях активного кэширования, предварительном заполнении кэша, о расширенных возможностях кэширования, о наблюдении за кэшем и сценариях для работы с ним.

Настройка размера кэша и его расположения

Чтобы воспользоваться возможностями кэширования, необходимо установить ISA Server в режим Cache или Integrated. Во время инсталляции Microsoft Internet Security and Acceleration Server появляется окно программы установки, в котором пользователю предлагается выбрать диск, на котором будет размещен кэш. Кэш может располагаться только в разделе NTFS. По умолчанию ISA Server создает кэш объемом 100 Мбайт в разделе NTFS наибольшей емкости. Этот раздел должен иметь не менее 150 Мбайт свободного дискового пространства. Диалог установки позволяет изменить размер кэша и его расположение (минимальный размер кэша составляет 5 Мбайт). Microsoft рекомендует кэш размером 100 Мбайт плюс 0,5 Мбайт на каждого потенциального proxy-клиента. Лучше всего размещать кэш на самом быстром диске. Для получения максимальной производительности на этом диске не должны быть установлены ни ISA Server, ни операционная система. Для каждого раздела кэша размером 10 Гбайт ISA создает один файл с расширением .cdat в каталоге Urlcache. Этот файл представляет собой файл базы данных, состоящей из записей кэшированных объектов. После установки ISA Server можно выполнять настройки конфигурации кэша, используя оснастку ISA management, доступную через консоль ММС, показанную на экране 1.


Экран 1. Окно ISA Management

Модели поведения кэша ISA Server

Комбинация правил маршрутизации и настроек конфигурации кэша определяет различные варианты поведения работы кэша ISA Server. Для каждого исходящего HTTP-запроса, который проходит через сервер, имеет место следующее:

  • ISA Server пытается определить, имеется ли запись нужного URL-объекта в кэше ISA Server. Если пользователь делает запрос к массиву ISA Server, системы, которые являются членами массива, используют протокол Cache Array Routing Protocol (CARP), чтобы определить, какой член массива содержит интересующий объект. Дополнительную информацию о протоколе CARP можно найти в статье «Настройка клиентов ISA Server», опубликованной в № 5 «Windows IT Pro/RE» за 2006 г.
  • Если объект в кэше обнаружен, ISA Server проверяет его актуальность. Неактуальные объекты имеют истекший срок жизни TTL. Администраторы Web-сервера используют специальные кэширующие заголовки для установки величины TTL. В случае отсутствия таких заголовков администратор ISA Server может задать собственные величины TTL.
  • Если объект актуален, ISA Server возвращает его пользователю. Если же нет, ISA Server проверяет правила маршрутизации этого объекта. Если правила позволяют ISA Server возвратить неактуальный объект, сервер вернет его пользователю.
  • Если правила запрещают ISA Server возвращать неактуальные объекты, ISA Server пытается определить доступность требуемого Web-сервера, заданного в запросе. Если нужный Web-сервер недоступен и правила кэширования разрешают возвращение истекших объектов, ISA Server вернет истекший объект. Если же Web-сервер доступен, ISA Server пошлет запрос Web-серверу. Более того, если объект кэшируемый, т. е. у объекта отсутствует заголовок, явно запрещающий кэширование, и если правила маршрутизации разрешают кэшировать заданный объект, то ISA Server добавляет этот URL и объект в свой кэш.
  • Правила маршрутизации и настройка кэша

    Теперь, когда мы знаем, как ISA Server обрабатывает URL-запросы, давайте рассмотрим, как правила маршрутизации и настройки кэша определяют поведение ISA Server. Для создания правила маршрутизации нажмите правую клавишу мыши на узле Network Configuration\Routing, который находится под узлом ISA Server в левой панели оснастки ISA Management; выберите New, Rule и следуйте подсказкам мастера. Для создания правила поведения кэша нужно нажать правую кнопку мыши на Rule в правой панели, выбрать пункт Properties. Откроется диалоговое окно свойств. Требуется перейти на закладку Cache. На экране 2 показана закладка Cache для правила маршрутизации LEONBR-HM, управляющего отправкой запросов на внешний сервер LEONBR-HM. Эта закладка имеет три варианта поиска в кэше, позволяющие задать соответствующий режим кэширования ISA Server. Возможные режимы я описал выше. Второй режим: Any version of the object; if none exists, retrieve the request using the route defined on the Action tab («Любая версия объекта; если не существует, восстанавливать запрос, используя маршрут, заданный на закладке Action») возвращает пользователю любую версию объекта, независимо от того, актуален он или нет.


    Экран 2. Выбор режима поиска

    Каждое из правил маршрутизации определяет, какое содержимое должно быть кэшировано. Замечу, что ISA Server поставляется с настроенным по умолчанию правилом маршрутизации, которое используется в случае отсутствия каких-либо других правил. Это правило напоминает второй вариант в разделе Cache Content окна свойств If source and request headers indicate to cache, then the content will be cached («Если источник и заголовки объекта разрешают кэширование, содержимое будет кэшировано»). Этот вариант передает ответственность за принятие решения о кэшировании объекта на исходный Web-сервер, который, в свою очередь, использует кэширующие заголовки для управления функцией кэширования.

    Для настройки кэша следует нажать правой кнопкой мыши на Cache Configuration в левой панели оснастки ISA Management, выбрать Properties и перейти на закладку HTTP. Эта закладка, показанная на экране 3, управляет кэшированием всех входящих и исходящих HTTP-запросов для выбранного ISA Server. Режим Enable HTTP caching («Разрешить кэширование HTTP») определяет, будет ли сервер кэшировать HTTP-запросы. Если этот флажок установлен, вы сможете задать частоту, с которой ISA Server будет обновлять URL и объекты в кэше.


    Экран 3. Выбор режима кэширования

    Первые три параметра частоты обновления задают обновление URL-объектов в соответствии с фиксированными политиками ISA Server. Четвертый — Set Time To Live (TTL) of object in cache to («Установить время жизни TTL объекта в кэше в…») позволяет установить собственную политику обновлений. Я задал частоту обновлений равной 20% от времени жизни объектов в кэше. Например, если объект был создан и модифицирован в 8 часов утра, а время его хранения задано равным четырем часам, то 20% от четырех часов — это 48 минут. Таким образом, если кто-нибудь запросит этот объект в полдень, ISA Server будет возвращать его до 12:48. После 12:48 ISA Server будет посылать запросы об этом объекте на соответствующий Web-сервер. Высокий процент в данном поле означает меньшую частоту обновлений кэша. Параметры No less than («не менее, чем») и No more than («не более, чем») позволяют установить максимальную и минимальную величину TTL.

    Оптимальное для организации значение параметра частоты обновления объектов будет зависеть от того, какой тип информации чаще всего обновляется пользователями (и от того, какого типа информацию публикует организация). Можно выбрать параметр Less frequently (наименьшая частота) — он используется в тех случаях, когда необходимо минимизировать трафик. Этот параметр можно использовать, если большинство пользовательских запросов приходится на обращение к статическим картинкам, логотипам, заголовкам и т. д. Параметр Frequently (Expire immediately) («время жизни истекает немедленно») применяют в случае, когда пользователи организации обращаются к сайтам новостей, содержащим часто обновляемую информацию. Наилучшим вариантом будет тестирование различных настроек и мониторинг производительности кэша с использованием счетчиков производительности и отчетов о работе кэша. О счетчиках и отчетах я расскажу далее в этой статье.

    Правила маршрутизации и параметры конфигурации кэша позволяют задать некоторые рамки кэширования объектов. Администратор Web-сервера может более тонко управлять кэшированием объектов путем использования в них кэширующих заголовков. ISA Server не кэширует объекты, содержащие в поле Cache-Control заголовки: no-cache (не кэшировать), private (частный), no-store (не сохранять). Также не кэшируются объекты, содержащие в поле Pragma заголовки: no-cache (не кэшировать), WWW-authenticate (WWW-авторизация) или set-cookie (установить cookie). ISA Server также не кэширует любые ответы на запросы, содержащие заголовок авторизационного типа (до тех пор, пока в ответах в поле Cache-Control присутствует public).

    Невозможно напрямую управлять тем, какой объект должен быть кэширован, а какой нет. Чтобы исключить кэширование определенных объектов, потребуется создать список таких объектов, сформировать правила маршрутизации для этого списка и запретить их кэширование в текущем правиле маршрутизации. Дополнительную информацию о создании набора таких объектов можно найти в документе http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/isa/proddocs/isadocs/m_p_h_createdestset.asp.

    Тестирование кэша


    Экран 4. Запрос файла hello.htm

    Чтобы увидеть, как ответы Web-сервера влияют на кэширование, понадобится Web-клиент, который может показать все заголовки, имеющиеся в HTTP-запросах. Microsoft Internet Explorer (IE) не показывает заголовки HTTP-ответов, поэтому я использовал для этих целей утилиту httpdump.exe, которую можно загрузить с http://msdn.microsoft.com/downloads/samples/internet/ networking/httpdump/default.asp?frame=true. Эта программа посылает HTTP-запросы и показывает содержание ответов, включая заголовки. На рис. 1 показана архитектура сети моего стенда. Httpdump запущен на системе BETA-CLIENT. Мой первый тест показан на экране 4. Мы посылаем запрос — получить файл hello.htm (который представляет собой статический html-файл, содержащий приветствие) на сервер LEONBR-HM. В командной строке видно, что я хочу подключиться к серверу LEONBR-HM, получить объект hello.htm. Соединение должно быть установлено через proxy-сервер ISA-LEON, прослушивающий порт 8080. Я убрал неважные в данный момент заголовки из текста ответа.


    Рисунок. Пример сети с ISA Server

    Заголовок Expires определяет момент, когда закончится время жизни в кэше объекта hello.htm. Заголовок Date указывает время, когда сервер принял мой запрос. Я назначил на сервере LEONBR-HM время жизни объектов равным 24 часам. Значение max-age (максимальный возраст) в заголовке Cache-Control равно 24 часам и выражено в секундах. Заголовок Last-Modified показывает дату и время последнего изменения файла hello.htm. По истечении минуты мы вновь просматриваем кэш ISA Server и видим, что он кэшировал объект http://leonb-hm/hello.htm после того, как тот был запрошен.


    Экран 5. Запрос текущей даты и времени

    Второй тест показан на экране 5. Он представляет собой запрос страницы currenttime.asp. Это страница, при обращении к которой возвращается текущее время и дата. Запрос разделен на две строки для удобства чтения, вводить его нужно одной строкой. Отмечу, что запрос не возвращает значение Expires date или max-age из-за присутствия заголовка Cache-Control: private, показывающего, что содержимое представляет собой динамический контент и кэшированию не подлежит.

    Теперь познакомимся с содержимым кэша ISA Server. Утилита cachedir.exe расположена на компакт-диске c дистрибутивом ISA Server в каталоге \support\tools\troubleshooting. Она позволит просматривать кэшированную информацию и управлять ею. Если запустить утилиту с компакт-диска, получим сообщение об ошибке типа отсутствия DLL. Чтобы этого избежать, следует скопировать утилиту в каталог \program files\microsoft isa server на систему с установленным ISA Server и запустить ее оттуда. На экране 6 показано окно утилиты Cache Directory с корректно кэшированным объектом hello.htm. Можно щелкнуть правой кнопкой мыши на объекте hello.htm в правой панели и посмотреть, что находится в кэше, весь объект или только его заголовок. Чтобы удалить объект из кэша, нужно щелкнуть на нем правой кнопкой мыши в левой панели и выбрать параметр Mark Obsolete (пометить как удаленный).


    Экран 6. Просмотр содержимого кэша

    Обратите внимание, что утилита Cache Directory не показывает входов в кэш (записей) объекта currenttime.asp. Как уже говорилось, Web-сервером для этого объекта определен параметр Cache-Control, который имеет значение private. Поэтому ISA Server не кэширует данный объект. Я могу выбрать параметр All content, including dynamic content, will be cached («Все содержимое, включая динамические объекты, будет кэшировано») в правиле маршрутизации LEONBR-HM (показано на экране 2) вместо раннее выбранного на закладке Cache параметра If source and request headers indicate to cache, then the content will be cached («Если исходный сервер и заголовки не запрещают кэширование, значит, объект будет кэширован»).


    Экран 7. Второй запрос файла hello.htm

    В качестве третьего теста я изменил содержимое файла hello.htm на Web-сервере и затем сделал запрос на получение этого файла снова. На экране 7 показан текст запроса (в ответе приведены только значимые заголовки). Поскольку правило маршрутизации LEONBR-HM использует один из двух последних параметров Search cache for на закладке Cache (т. е. параметр: «Любая версия объекта. Если ее не существует, восстанавливать объект», используя маршрут, указанный на закладке Action, либо параметр: «Любая версия запрашиваемого объекта. Никогда не маршрутизировать запрос», см. экран 2). Поэтому второй запрос объекта hello.htm возвращает старую версию файла с выводом сообщения о возможном изменении информации на исходном сервере. Правило маршрутизации заставляет ISA Server отображать из кэша любую версию объекта, как актуального, так и с истекшим сроком жизни. Фактически, если я удалю hello.htm с сервера, я буду продолжать получать результаты, приведенные на экране 7.

    FTP и SSL

    ISA Server поддерживает кэширование объектов, которые пользователь запрашивал через FTP. Чтобы разрешить кэширование FTP-объектов, надо открыть закладку FTP в диалоговом окне Cache Configuration Properties и задать время жизни TTL для всех FTP-объектов. FTP-протокол не имеет возможности посылать вспомогательную информацию, например такую, как заголовок Expire в ответах от FTP-сервера клиенту. Таким образом, FTP-сервер не может повлиять на поведение функции кэширования ISA Server. ISA Server кэширует FTP-объекты только тогда, когда запрос о них приходит от клиента, поддерживающего proxy-сервер. Internet Explorer как раз является таким клиентом. Если пользователь наберет команду FTP://ftp.microsoft.com в строке ввода адреса Internet Explorer, то ISA Server кэширует объект ftp.microsoft.com. Если же пользователь наберет ftp.exe в командной строке для запуска утилиты ftp.exe, поставляемой с Windows, в этом случае FTP-запрос пройдет через службу Secure Network Address Translation (NAT) либо через клиент брандмауэра, и ISA Server не будет кэшировать его.

    Когда Internet Explorer устанавливает SSL-соединение с Web-сервером через ISA Server, ISA Server создает SSL-туннель. Proxy-сервер не расшифровывает SSL-поток, а только поддерживает защищенный туннель к Web-серверу. ISA Server не кэширует данные, посылаемые через туннель. Он может играть роль SSL-моста для входящих соединений (когда внешний клиент подсоединяется к опубликованному внутреннему Web-серверу) или когда ISA Server нижнего уровня соединяется с ISA Server верхнего уровня. В режиме моста кэширование разрешено по умолчанию. Дополнительную информацию о возможностях ISA Server по организации SSL-туннелей и мостов можно найти в статье (http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/prodtech/isa/isafp1/sslbat.asp).

    Активное кэширование

    ISA Server имеет функцию активного кэширования. Если активировать эту функцию, ISA Server определит адреса URL наиболее часто используемых объектов и будет периодически восстанавливать их с Web-сервера, так чтобы кэш всегда содержал свежие верcии этих файлов. Для настройки активного кэширования используется закладка диалогового окна Active Caching. Здесь можно установить частоту восстановления объекта, нормальную или менее частую. Чтобы увидеть это окно, нужно запустить оснастку ISA Management консоли MMC. Следует щелкнуть правой кнопкой мыши на Cache Configuration в контейнере соответствующего ISA Server, выбрать Properties и перейти на закладку Active Caching. Надо иметь в виду, что частота обновлений не всегда постоянна. Если ISA Server использует модемное соединение с Internet, активное кэширование также будет осуществляться через это соединение.

    Механизм активного кэширования для пользователя — «черный ящик». Microsoft никак не документировала алгоритмы, которые использует функция активного кэширования для определения того, какие объекты будут кэшироваться и когда. Мы не можем указать, какой из объектов должен активно кэшироваться (т. е. невозможно создать список необходимых объектов, которые должны активно кэшироваться). Активное кэширование проводится во время наименьшей загрузки процессора, наблюдающейся чаще всего ночью, когда ISA Server используется менее активно.


    Экран 8. Задание TTL и глубины ссылок

    Если требуется сохранить полосу пропускания в тех случаях, когда оплата зависит от объема передаваемой информации, пользуйтесь параметром less frequent (редкая частота обновлений). Другими словами, я затрудняюсь посоветовать, какой параметр выбрать. Поскольку алгоритм работы не опубликован, лучше всего попробовать различные варианты настройки, проанализировать использование канала и выбрать оптимальную настройку, не вызывающую перегрузку канала трафиком кэширования.

    Предварительное наполнение кэша

    Вместо кэширования и сохранения содержимого в актуальном состоянии при помощи активного кэширования можно самим наполнить кэш наиболее популярными объектами. Чтобы это сделать, нужно создать новое запланированное задание. В оснастке ISA Management под контейнером сервера, который вы хотите настроить, перейдите в Cache Configuration\Scheduled Content Download. Щелкните правой кнопкой мыши на Scheduled Content Download Jobs («Задание загрузки содержимого по расписанию») и выберите New, Job для запуска мастера New Scheduled Content Download Job Wizard. Запустится мастер планирования загрузки объектов. После того как будет указано имя задания, мастер предложит назначить время и дату запуска первого задания. На следующем экране будет предложено ввести частоту, с которой желательно выполнять это задание. Следующий экран позволит ввести URL нужного объекта и определить, хотите ли вы переходить по связям к другим объектам с этой страницы и нужно ли кэшировать динамическое содержимое. На следующем экране, показанном на экране 8, мастер попросит ответить на вопрос о количестве переходов по вложенным связям (глубине связей) и времени жизни объектов (TTL). Как упоминалось ранее, ответ Web-сервера, передающий информацию о TTL, содержится в заголовке Expires. Можно изменить установку TTL с Web-сервера, отметив первый пункт Always override object’s TTL(«Всегда перезаписывать TTL объекта»), и задать новое значение TTL в минутах. Если выбрать второй пункт Override TTL if not defined («Перезаписывать TTL, если он не определен»), ISA Server будет обновлять объекты в кэше в соответствии с установками, заданными на закладке HTTP в диалоговом окне Cache Configuration Properties, за исключением тех объектов, которые Web-сервер будет посылать с предшествующими кэширующими заголовками. Если отметить второй пункт и задать новое значение TTL в минутах, эти значения будут иметь преимущество перед установками на закладке HTTP.


    Экран 9. Результаты проверки ссылок

    Загрузчик объектов ISA Server работает подобно Web-поисковику. ISA Server посылает запрос на заданный URL, последовательно проходит по каждой связи на начальной странице и выполняет запросы по ним. Это происходит до тех пор, пока не будет достигнут предел глубины связей, заданный на последнем экране мастера New Scheduled Content Download Job Wizard. Также можно определить предельное количество объектов (таких, как Web-страницы и картинки), которые можно кэшировать.

    На экране 9 показано, как выглядит кэш после того, как ISA Server загрузит содержимое с http://www.microsoft.com. Можно наблюдать полную структуру исходных URL.

    Расширенная конфигурация

    На экране 10 показаны параметры расширенной конфигурации кэша. Выбрав пункт Do not cache objects larger than («Не кэшировать объекты более чем…») и задав число в килобайтах, вы тем самым гарантируете, что ISA Server не будет кэшировать большие объекты, содержащиеся в пользовательских запросах (например, файлы картинок). Выбрав пункт Cache objects that have an unspecified last modification time («Кэшировать объекты, имеющие неопределенное время последнего изменения»), вы тем самым заставляете ISA Server кэшировать ответы, не имеющие заголовка Last-Modified, который я рассматривал выше. Выбрав пункт Cache objects even if they do not have an HTTP status code of 200 («Кэшировать объекты даже в том случае, если они не имеют HTTP-кода cостояния 200»), вы активизируете негативное кэширование, кэширующее ответы, которые имеют код, отличный от 200, т. е. OK. ISA Server с негативным кэшированием будет кэшировать следующие ответы Web-серверов:

    • 203 Неполный объект
    • 300 Перенаправление
    • 301 Удален или перемещен
    • 410 Объект перемещается

    По умолчанию ISA Server не кэширует динамическое содержимое URL-объектов (т. е. URL, содержащие знак вопроса). Когда приложение Web-сервера генерирует динамические объекты, хотя его URL не содержит знака вопроса, приложение обычно добавляет заголовок Expires:0 для предотвращения кэширования. Чтобы изменить такое поведение ISA Server, можно выбрать пункт Cache dynamic content (кэшировать динамические объекты), т. е. объекты со знаками вопроса. Однако следует дважды подумать, прежде чем это делать. В результате такого действия ISA Server будет кэшировать и отображать результаты любого пользовательского Web-запроса и предоставлять пользователю неактуальные данные.


    Экран 10. Параметры расширенной настройки

    Чтобы повысить производительность, ISA Server сохраняет все объекты сначала в оперативной памяти, затем записывает их на диск. При поиске объектов сначала выполняется поиск объектов в памяти, а потом на диске. Microsoft не документировала алгоритм, по которому сервер определяет, когда объекты из памяти переместятся на диск. Я могу только обходными путями заставить наиболее часто используемый объект храниться в оперативной памяти и тем самым ускорять его обработку ISA Server. Параметр в поле Percentage of free memory to use for caching («Процент свободной памяти, используемой для кэширования») управляет тем, сколько памяти ISA Server будет использовать для целей кэширования. Если требуется предотвратить кэширование ISA Server больших объектов в оперативную память, нужно ввести верхний предел (в байтах) объема используемой памяти в поле Maximum size of URL cached in memory («Максимальный размер объекта, кэшируемого в оперативную память»).

    Следующие два параметра управляют поведением ISA Server в том случае, если не удается восстановить соединение с нужным Web-сервером для восстановления объектов, время жизни которых истекло. Если выбрать параметр Do not return the expired object (return an error page)(«Не возвращать истекший объект (вернуть страницу ошибки)»), ISA Server будет возвращать ошибку. Если выбрать параметр Return the expired object only if expiration was («Возвращать истекший объект, если время его жизни истекло»), вы сможете управлять тем, как долго ISA Server будет продолжать возвращать истекшие объекты. Можно установить это время в процентах от величины оригинального времени жизни и установить его верхний предел в минутах.

    Наблюдение за кэшем

    ISA Server предоставляет более 20 счетчиков, позволяющих собирать данные о производительности. Для работы с наиболее важными из них на системе, где установлен ISA Server, следует нажать Start, открыть программную группу Microsoft ISA Server и выбрать Microsoft ISA Server Performance Monitor для запуска Windows Performance Monitor с предварительно настроенными на мониторинг ISA Server ключевыми счетчиками.

    Показатели счетчика Cache Hit Ratio (%) обеспечиваются работой службы Web Proxy ISA Server. Счетчик показывает процент URL-запросов, которые ISA Server смог обслужить, используя собственный кэш. Счетчик Cache Running Hit Ratio (%) («Результативность работы кэша») позволяет оценить результативность кэша для последних 10 000 запросов и дает ясную картину производительности кэша ISA Server.

    Для создания отчета, отображающего данные о производительности кэша, нужно развернуть в оснастке ISA Management узел ISA Server’s Monitoring Configuration, щелкнуть правой кнопкой мыши на Report Jobs, выбрать New, Report Job. Щелкните на закладке Schedule (расписание) и выберите режим Immediately (немедленно), чтобы начать создания отчета. По умолчанию отчет называется Report Job, но можно выбрать и другое имя. Вы можете задать интервал времени, за который необходимо получить отчет (например, день, месяц и т. д.).


    Экран 11. Отчет о производительности

    Для просмотра отчета в оснастке ISA Management следует перейти в раздел \Monitoring\Reports\Traffic & Utilization и дважды щелкнуть на полученном отчете в правой панели оснастки. Запустится Microsoft Internet Explorer (IE), и отчет появится в окне обозревателя. ISA-сервер создает отчет в виде простого HTML-файла в папке Temporary Internet Files и затем запускает Internet Explorer для его отображения. Отчет содержит избыточную информацию, но нас интересует только секция Cache Performance. Отчет отображает данные о производительности двумя способами: в виде таблицы, как показано на экране 11, и в виде секторной диаграммы. Наибольшей эффективности работы кэша соответствует наименьшее значение параметра Objects returned from the Internet («Объекты, возвращенные из Internet»). Параметр Objects returned from cache without verification («Объекты, возвращенные из кэша без верификации») показывает число и процент объектов, которые были возвращены из кэша без дополнительной проверки за отчетный период. Отчет также показывает число объектов, возвращенных после верификации. Эта величина означает, что ISA Server послал запрос об объекте Web-серверу, а Web-сервер ответил, что объект не изменился, и таким образом ISA Server возвратил кэшированный объект.

    Управление и обслуживание при помощи сценариев

    Компакт-диск с ISA Server содержит сценарии (они расположены в папке (sdk\samples\admin\scripts directory), позволяющие программно управлять ISA Server и решать задачи (например, удаление URL из кэша), которые непросто выполнить с помощью оснастки ISA Management. Сценарии используют программные интерфейсы ISA Server, так называемые FPC-объекты, к которым можно получить доступ, используя COM-интерфейсы из VBScript, Visual Basic (VB), Java и других языков.

    Вы можете ввести команду

    delete_url.vbs ISA-LEON
    http://www.braginski.com/
    default.htm

    для запуска сценария delete_url.vbs, удаляющего URL из кэша. Заметим, что команда разделена на несколько строк исключительно для удобства чтения и соответствия формату статьи. Всю команду необходимо вводить одной строкой. Первый параметр этой команды — имя массива ISA Server или выделенного ISA Server. Второй параметр — это URL, который должен быть удален. Если сценарий не найдет объекта в кэше, он возвратит ошибку: The system cannot find the file specified («Система не может найти заданный файл»).

    Сценарий fetchurl.vbs получает URL-объект и сохраняет его с заданным именем на определенное количество времени. В команде:

    fetchurl.vbs http://www.
    braginski.com/default.htm
    http://www.NewBraginski.com/
    NewHtml.html 1

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

    Сценарий cachesettings.vbs является образцом сценария, показывающего настройки кэша для массива ISA Server или для выделенного ISA Server. Наберите команду:

    cachesettings.vbs

    в результате в командной строке отобразится имя вашего массива, и далее выводятся параметры настройки сервера (на рисунке изображен вывод для системы ISA-LEON):

    Array name: ISA-LEON
    Active caching is currently
    disabled
    Cache drives: E:
    Cache drives present: 1
    Total cache size: 100

    Сценарий setcache.vbs позволяет интерактивно устанавливать параметры HTTP-кэширования и настраивать активное кэширование. Чтобы подробно разобраться с управлением ISA Server при помощи сценариев, рекомендую просмотреть документацию в наборе для разработчика (SDK). Более детальное описание FPC-объектов можно найти по ссылке Objects на http://msdn.microsoft.com/library/en-us/isa/isaobj1_0rub.asp?frame=true.

    Важно запомнить, что наиболее эффективное использование кэширующих функций ISA Server возможно при его установке в режим кэширования. Этот простой шаг повысит эффективность использования кэша ISA Server в корпоративных сетях любого размера.

     

    Леон Брагинский — технический руководитель Microsoft Developer Support. Соавтор книги Microsoft Internet Information Server и автор статей в MSDN Magazine.

    Журнал «Windows IT Pro», Издательство «Открытые системы» (http://www.osp.ru/)