Турбирование
Microsoft Internet Information Services (IIS) version 5.0 Или Маленькие радости для обладателей серверов Microsoft® Windows NT
2000 Server.
”О сколько нам мгновений чудных, готовит
просвещенья дух…” (А.С.Пушкин)
Еремин Сергей
Руководитель ESGraphics Group
eremey@ens.ru
На сегодня есть несколько разных способов «ускорить» или, проще
говоря, «турбировать» сервера на базе Microsoft IIS 5.0.
Первый и штатный.
Использовать компрессию, предоставляемую самим сервером по протоколам RFC
1945 - HTTP/1.0 (ftp.isi.edu/in-notes/rfc1945.txt),
RFC 2068 - HTTP/1.1(ftp.isi.edu/in-notes/rfc2068.txt)
с использованием форматов RFC 1951 - DEFLATE Compressed Data Format (ftp.isi.edu/in-notes/rfc1951.txt),
RFC 1952 - GZIP File Format(ftp.isi.edu/in-notes/rfc1952.txt).
Но этим мало кто пользуется, на самом деле. По старой привычке, надеясь
на наш авось, процессор пооборотистее, памяти побольше, канал потолще и все
будет тип - топ. В основном большинство даже не удосуживается прочитать
описание, прилагаемое к серверу, по-английски «HELP». Запустилось, работает
и ладно. Хотя в «HELP» есть практически полное описание ускорителя, как и
что. Да, ко всему выше сказанному. Нужно только раскрыть глаза. Если
внимательно посмотреть список каталогов WINNT, там есть папочка IIS
Temporary Compressed Files. Вас ничто не наводит на размышления? Зачем это
закопали, достопочтенные разработчики из Microsoft, данный каталог в WINNT?
А закопали они это не зря! Там размещаются файлы для дальнейшего более
быстрого доступа. Их заранее упаковали, разложили, и теперь они готовы к
использованию. Зачем делать одну работу миллион раз? Пришел запрос браузера
пользователя, получите ответ. Сразу готовый файл. Отсюда и ускорение.
Получается, что экономим время на запросах, на операциях, да еще и
сжали все заранее... Удобно. Да, удобно! Больше сможем обслужить клиентов на
том же трафике.
Для тех, кто не верит в наличие сего, публикую скриншот установок
стандартного IIS5.0!
Вот она - компрессия! Хотя здесь есть свои подводные камни. Эта компрессия
отлично работает со статическим контентом, то есть содержанием, HTML файлами
с расширением *.htm, *.html, *.txt. И если у кого неподъемный, выделяю
особо, статический контент, то последуйте совету, включите компрессию. Много
не потеряете. В расходах будет дисковое пространство для файлов от 10 Mb
(WINNT/IIS Temporary Compressed Files), в прибыли скорость работы сервера,
увеличение скорости загрузки содержания, уменьшение трафика. Но вот
загвоздка! Почему только HTML?!
По этому поводу скажу только одно. Microsoft Internet Information
Services (IIS) version 5.0 можно заставить жать по алгоритму GZIP (Поищите
файл gzip.dll и найдете его в каталоге WINNT/system32/inetsrv) практически
все, что душе угодно, но для этого, надо приложить ручки! И советую, для
начала почитать MSDN Q234497! Там вкратце рассказывается, как дополнить
список расширений.
Для пущей убедительности приведу только один пример:
CSCRIPT.EXE ADSUTIL.VBS SET
W3Svc/Filters/ Compression/GZIP/ HcFileExtensions "htm" "html" "txt" "doc"
"ppt" "xls"CSCRIPT.EXE ADSUTIL.VBS SET
W3Svc/Filters/Compression/ DEFLATE/ HcFileExtensions "htm" "html" "txt" "doc"
"ppt" "xls"IISRESET.EXE
Он на деле показывает, что к стандартным расширениям сжатия "htm"
"html" "txt" можно добавить doc" "ppt" "xls". Также "asp"
"inc" "js" "css". Серверу без разницы, что паковать главное, чтобы у клиента
распаковывалось. Во всяком случае у меня *.ASP сжимались таким способом.
Но вначале изучите материал, помощь по серверу, MSDN и отработайте свои
действия на тестовом сервере. По опыту известно, что с первого раза никогда
не получается. Вечно все рушится. И если вы решите ставить эксперимент на
«живом» сервере, то лучше задумайтесь. За последствия я не ручаюсь заранее.
Вот вкратце первый способ. Доступный.
Способ второй.
PipeBoost от BPVN Technologies! (
http://www.bpvn.com/ )
Сразу оговорюсь, что потребуется дополнительное вложение капиталов 1499
USD. Сторонний программный продукт интегрируемый с Microsoft® Internet
Information Server 5.0. Управление интегрировано в консоль. Сжимает фалы с
расширениями HTM, TXT, ASP, XML, XSL, CSS, CFM, BMP, DOC, XLS, MDB и
другими. Может сжимать как отдельные сервера, виртуальные сервера,
конкретные файлы и каталоги, с учетом MIME типа. Поддерживает динамическое
сжатие ASP (Server Side ASP Caching (динамическое кэширование страниц),
Microsoft XML 2.0, XML интегрированный в Microsoft SQL Server 2000, SSL.
Полная поддержка Cold Fusion Application Server for Microsoft IIS с
возможностью кэширования запросов. На сегодня совместим с операционными
системами Microsoft® NT.4.0, Windows 2000, XP и .Net. 100% совместим с
браузерами Internet Explorer, Netscape, AOL, Opera, и другими.
Приведу пример коэфициентов сжатия файлов:
Тип Описание
Сжатие
HTML Hyper Text Markup Language
65%-85%
ASP Active Server Pages
65%-85%
PHP PHP: Hypertext Preprocessor
65%-85%
CFM Cold Fusion Markup Language
65%-85%
TXT Text Documents
75%-95%
XML Extensible Markup Language
75%-85%
XSL Extensible Stylesheet Language 55%-95%
CSS Cascading Style Sheets
80%-95%
BMP Bitmap Image
75%-85%
GIF* GIF Image
Без сжатия
JPG* JPG Image Без
сжатия
DOC Microsoft Word Document
50%-70%
XLS Microsoft Excel Document
50%-70%
MDB Microsoft Access Database
50%-90%
Файлы графики GIF или JPEG не сжимаются, так как эти форматы уже
подразумевают сжатие по алгоритму компрессии LZW, совместимому с алгоритмом.
PipeBoost.
Для сравнения просчитаем один пример:
В нашем случае возьмем любимый сервер
http://www.microsoft.com/, его
стартовую страницу. Размер ее без компрессии 27,171Kb. Теперь оценим то, что
получается если данную страницу «турбировать PipeBoost». Размер сжатого
файла 5,028 Kb, коэффициент компрессии 9, коэфициент сжатия 81.49% ,
время загрузки < 10 ms, увеличение скорости загрузки 440%, включая CSS и JS
файы. Если загорелись глазки и есть желание, все в ваших силах. Приобрел,
установил. Демонстрационную версию можно скачать с сайта производителя и
попробовать на собственном тестовом сервере, как это делал я. Меня, по
правде говоря, впечатлили некоторые возможности данной программы. Но увы,
стоимость отпугивает…
Способ третий, последний и пока
бесплатный!...
Ради чего, я вообще затеял эту писанину. Есть еще одна утилита -
HTTPBurst (
http://www.timax.net.ua/ ~httpburst ), позволяющая «турбировать» сервера
IIS 5.0 по протоколам HTTP/1.0, HTTP/1.1 с использованием
форматов сжатия DEFLATE Compressed Data Format и GZIP File Format. Написал
ее украинский «писатель», из Запорожья, Владимир Казаков и КОмпания. В
анотации к программе он высказал следующее: «хотелось сделать что-то
функциональное и легкое в управлении». Давайте на деле взглянем на этот
продукт. Он стоит того, чтобы обратить на него.
В настоящее время существует НTTPBurst Версия 1.0.0d. (на время
написания статьтьи). О ней и поведу я свое повествование опираясь на «доку»
и свой опыт использования.
Во-первых, это ISAPI фильтр для веб серверов Microsoft (IIS 4.0/5.x),
работающих на платформе Windows NT4/2000/XP, которое обеспечивает быструю
передачу информации клиентам за счет динамического сжатия информационного
потока. Условие распространения: HTTPBurst 1.0.0d распространяется как
FreeWare и является некоммерческой версией. Что для многих
пользователей сегодня актуально.
Установка достаточно стандартна и проста. Скачиваете программу. Для
начала установки инсталлятор HttpBurst100cSetup.exe и следуйте инструкциям
установки. (В состав инсталлятора входят: модуль инсталляции, модуль
удаления, HttpBurst.dll (фильтр ISAPI для IIS), Reghb.vbs (скрипт для
регистрации фильтра HttpBurst.dll), Unreghb.vbs (скрипт для снятия с
регистрации фильтра HttpBurst.dll) и Readme.rtf ). Но при этом следует
помнить, что HTTPBurst устанавливается на сервера Microsoft Windows
NT4/2000/XP с предварительно установленной службой Internet Information
Service 4.0/5.x . Также необходим установленный Сервер сценариев Windows
версии 5.0 или выше (cscript.exe/wscript.exe). Если сервис IIS
предварительно не установлен, то и начинать не стоит. Хотя тут есть
несколько “но”, о которых расскажу в процессе повествования.
Теперь о тактико-технических
характеристиках «Турбины»
HTTPBurst 1.0.0d осуществляет динамическое (“на лету”) сжатие контента,
отправляемого веб сервером, если конечно это поддерживается клиентом.
Сжимается только контент, который отправляется клиенту со статусом 200 или
206. Для веб мастеров эти термины, надеюсь, достаточно понятны. ( RESPONSE:
\n, HTTP/1.1 200 OK\r\n и т.д.)
Возможны два варианта Content-Encoding: RFC 1951 (ftp.isi.edu/in-notes/rfc1951.txt)
- DEFLATE Compressed Data Format и RFC 1952 (ftp.isi.edu/in-notes/rfc1952.txt)
- GZIP File Format (компрессия по LZ77). Если клиент поддерживает два
варианта Content-Encoding, (как правило, так оно и есть), тогда можно
указать приоритет deflate или gzip (PriorCompress) и уровень компрессии
(DefaultCompressLevel, HTTPBurst-CompressLevel). Модуль компрессии
использует известную библиотеку zlib версии 1.1.4 .
Так как контент сжимаются “на лету” и его размер не известен, он
передается клиенту в формате “chuncked” (RFC 2616)(ftp.isi.edu/in-notes/rfc2616.txt).
Можно гибко настроить сжатие контента по его Content-Type или расширению
передаваемого файла отдельно для протоколов HTTP1.1 (DefaultMIME,
DefaultExtension, HTTPBurst-MIME, HTTPBurst-Ext) и HTTP1.0 (DefaultMIME10,
DefaultExtension10 и HTTPBurst-MIME10, HTTPBurst-Ext10). Также определяется
минимальный размер контента подлежащего сжатию, который лучше начинать со
128 байт (MinLength). Можно указать для безусловной компрессии: виртуальный
сервер, каталог или файл, используя специальный заголовок
(HTTPBurst-ThisCompress).
Если клиент ( допустим IE, Opera или Netscape) подключается к веб серверу
через прокси сервер, тогда к заголовку ответа добавляются поля
Cache-control: private (для протокола HTTP1.1) и Pragma: no-cache (HTTP1.0).
В последнем случае, должен быть установлен в “1” параметр реестра
CompressForCompAgent (совместимость клиента определяется по строке
“Mozilla/4” в заголовке запроса User-Agent). Хотя есть наихитрейший прокси
типа ESERV, с которым придется побиться.
Вообще, для разрешения или отмены компрессии каталога или файла
используют специальный заголовок HTTPBurst-ThisCompress, а для разрешения
или отмены обработки контента HTTPBurst’ом для службы IIS или виртуального
сервера, используют специальный заголовок HTTPBurst-Enabled.
Есть еще одна интересная, на мой взгляд, черта, в этой программе. О
которой хотелось бы сказать особо. Режим “Стелс”. Запускается он из реестра,
параметр реестра Server. О настройках немного позже. Строка этого параметра
заменяет HTTP заголовок Server в любом ответе сервера. Эта подмена сделана
для организации “теневого” режима (Если для службы IIS или виртуального
сервера специальный заголовок HTTPBurst-Enabled равен “no”, тогда поле
Server в ответе сервера не изменяется.), которым можно с успехом
пользоваться. Подмена в 50% случаев сбивает с толку сетевые сканеры и
предотвращает нападения на сервер. Ведь, как известно, «полакомиться» IIS
желающих предостаточно. Допустим у вас IIS5.0. Вы пишите в поле “Server
Apache/1.3.19 (Unix)”. При ответе сервера на запрос получаем следующее:
Server: Apache/1.3.19 (Unix) HTTPBurst/1.0.0d\r\n. Ведь первое, что
определяют при взломе, тип сервера и на какой операционке «сидит». А тут
такое. Фичи для Apache не проходят! И сервер пускай даже так, но отбивает
атаку. Маскировочка! Хотя думаю, что ничто не вечно под луной.
Теперь о том, как настроить «турбинку».
Достаточно просто. Для этого не надо быть семи пядей во лбу, как в первом
случае. О нас позаботились. Хотя хочется большего, но и на том спасибо.
Инсталлятор HttpBurst100cSetup.exe уже сделал свое дело! Вы следовали
инструкциям установки. Честь вам и хвала. Но вот вопрос каков
приоритет вы установили? Ведь фильтры ISAPI могут иметь определенный
приоритет загрузки, и принимать значения: low|medium|high. По умолчанию
устанавливается high. Если у вас стоят ISAPI фильтры других производителей,
то лучше вначале понизить приоритет «турбины» до medium.
У меня на одном из серверов поругались KAVISAPI (Защита серверов от
Господина Касперского. Клевая штука.) и HTTPBurst, неподелив кому солировать
в партии, потому как у обоих стоял приоритет high. Пришлось понизить
HTTPBurst до medium. И все заработало. С приоритетом думаю понятно. Чай не
маленькие.
Далее делаем следующее кликаем на клавише Sart/Run, в поле набираем
regedit и жмем «OK». Там находим следующее
HKEY_LOCAL_MACHINE\ Software\KdV Group\HTTPBurst”. Вот где мы сейчас
погуляем. Заодно и изучим возможности.
Оговорюсь заранее, изменения параметров вступают в силу после рестарта
IIS, длина строки реестра не должна превышать 255 символов во всех случаях!
К делу. Параметры ключей системного реестра HTTPBurst. Сделаем описание,
так чтобы неосталось недомолвок. И так описание параметров:
Version - 1.0.0d (не изменяйте это значение); Приводит к
неотвратимому краху.
LoadOrder - Задает приоритет загрузки фильтра. Может
принимать значения: low|medium|high . По умолчанию: “high”;
PriorCompress - задает приоритет Content-Encoding.
(Пример: gzip;q=1.0, deflate;q=0.5, compress;q=0), где q может принимать
значение от 0.1 до 1.0 . После установки: “gzip;q=1.0, deflate;q=0.5,
compress;q=0”. По умолчанию: “gzip;q=1.0, deflate;q=1.0, compress;q=0”; В
некоторых случаях на тяжелых серверах стоит поиграть занчениями “gzip;q=1.0,
deflate;q=0.5, догнав их до «1», но в каждом конкретном случае значение
определяется путем проб и ошибок. Параметр Сompress;q=0 - здесь "q=" задает
приоритет вида компрессии по сравнению с другими видами.
Попробую объяснить в меру своих сил. В RFC прописаны три типа компрессии
"deflate, gzip, compress". Compress использует лицензируемый алгоритм LZW
(Лемпель-Зиф-Велч). Вообще, если внимательно посмотреть на заголовок,
который отправляют большинство браузеров, то там будет "Accept-Encoding:
gzip, deflate" и все. Так что Сompress;q=0!
На самом деле алгоритм сжатия, используемый в deflate и gzip, одинаковый -
LZ77. Но при сжатии по gzip жатый контент имеет: специальный заголовок (10
байт), трейлер (4 байта), в котором записана контрольная сумма контента по
crc32.
Например прописано "PriorCompress = gzip;q=1.0, deflate;q=0.5,
compress;q=0", а от клиента пришло "Accept-Encoding: gzip, deflate".
Следовательно, будем жать gzip'ом. Если прописано "PriorCompress :
gzip;q=1.0, deflate;q=0.5, compress;q=0" от клиента пришло "Accept-Encoding:
gzip;q=0.2, deflate;q=0.5" все равно будем жать gzip'ом. Так вот.
GZIPом все, GZIPом, им родимым...
Стоит упомянуть еще о производительности процессора. Незабывайте о нем. Его
можно перегрузить работой. Все хорошо в меру. На Intel Pentium III (от 733
МГц), Intel Pentium IV наши «q» можно увеличить. Да, еще не забудьте
оставить немного памяти для разворота. Но и на Intel Pentium II 233/ 128 MB
программа работает прекрасно. Нужно правильно только подобрать коэфициенты
gzip;q=*.*, deflate;q=*.*. Хотя многое зависит от запросов клиентов... Что
запросит клиент, то ему и будем выдавать на гора.
SizeBuffer - размер внутренних буферов HTTPBurst. Может
принимать значения: small|medium|large . После установки - “small”. По
умолчанию: “small”. Тут мой совет оставить как есть - small (8k)! Программа
выделяет для своей работы в памяти 8k|16k|32k. Если оперативной памяти
предостаточно (заваливается за 512 MB), то можете рискнуть и больше отдать.
Но, как показала практика, самый оптимальный - small!
Server - строка подмены Server в заголовках ответов.
Писал выше, уже знакомый режим “Стелс”. (Пример: Apache/0.8.4 (Unix)). После
установки: “Apache/0.8.4 (Unix)”. Правим сами или оставляем как есть... Но
желающих поживиться старой версией 0.8.4 будет предостаточно. Лучше сменить
на более новую. Apache/1.3.19 (Unix), к примеру. По умолчанию: “”, можете
оставить родной Microsoft-IIS/5.0.
CompressForCompAgent - разрешить компрессию на протоколе
HTTP1.0 для совместимых клиентов. Может принимать значения: 1-разрешить;
0-запретить. После установки: “1”. По умолчанию: “0”; Оставляем как есть.
MinLength - минимальный размер контента в байтах
подлежащий компрессии. После установки: “128” байт. По умолчанию: “128”
байт. Один из хитрых параметров. Я для себя вывел, что лучше оставить как
есть. Но на производительных машинах можно поиграть до 64 или 32 байт! Но,
как правило, все файлы начинаются с 256 байт или даже больше.
DefaultCompressLevel - уровень компрессии. Может
принимать значения: none|fastest|default|max . Распишем значения: none
- нет компрессии, fastest - быстрое сжатие, default - компромисс между
скорость сжатия и временем, max- максимальное сжатие. После установки:
“max”. По умолчанию: “default”. Оставте “max”. Жмет хорошо! В накладе не
останетесь.
( Внимание ! Длина строки реестра WINDOWS
NT 2000 не должна превышать 255 символов! )
DefaultMIME - перечисляются через запятую значения
Content-Type, подлежащие компрессии, для протокола HTTP1.1 .
(Пример: text/*, application/msword, application/vnd.ms-excel,
application/postscript, application/x-javascript). После установки: “text/*,
application/msword, application/vnd.ms-excel, application/postscript,
application/x-javascript”. По умолчанию: “”;
DefaultExtension - перечисляются через запятую
расширения (обязательно с точкой) физических файлов подлежащих компрессии,
для протокола HTTP1.1 . (Пример: .vbs, .hhc). После установки: “.vbs,
.class, .hhc, .hhk”. По умолчанию: “”.
DefaultMIME10 - перечисляются через запятую значения
Content-Type, подлежащие компрессии, для протокола HTTP1.0 . (Пример:
text/*). После установки: “text/*”.По умолчанию: “”.
DefaultExtension10 - перечисляются через запятую
расширения (обязательно с точкой) физических файлов, подлежащих компрессии,
для протокола HTTP1.0 . (Пример: .class, .hhc). После установки: “.class,
.hhc, .hhk”. По умолчанию: “”.
DefaultMIME, DefaultExtension, DefaultMIME10, DefaultExtension10
– ну очень нужные ключики!
На деле все выглядит достаточно прозаично. Вот несколько вариантов
настройки.
Вариант 1:
DefaultExtension
.vbs, .class, .html, .htm, .asp, .js, .inc
DefaultExtension10 .class,
.html, .htm, .asp, .inc
DefaultMIME
text/*, text/html, text/css, application/x-javascript, image/gif"
DefaultMIME10
text/*, text/html, text/css
Вариант 2:
DefaultMIME:
"text/*, image/gif, application/x-shockwave-flash, text/html, text/css,
application/x-javascript";
DefaultExtension:
".vbs, .class, .html, .htm, .asp, .js, .inc";
DefaultMIME10:
"text/*, text/html, text/css";
DefaultExtension10:
".class, .html, .htm, .asp, .inc";
Отсюда DefaultMIME10 - только text/htm! Это итог моих проб и
ошибок, благодаря ESERV, о котором я уже упомянул. Ну не хочет по-хорошему.
Только с заднего черного хода, через завсклад, директор магазин....
Подведем итог - Итого:
DefaultExtension .vbs,
.class, image/gif"
DefaultExtension10 <пусто>
DefaultMIME
text/*, application/x-javascript
DefaultMIME10
text/html
Излишества тут ни к чему. Хотя GIF тоже можно жать. А почему бы
нет! Процент компрессии от -2% до 25% (все зависит от степени сжатия в
самом файле «gif») но все же, ощутимо! Пригодится для дела. Пробуйте,
изучайте, может кто и найдет свои уникальные настройки.
DefaultLog - определяет уровень log-строки для сжатых
контентов. Log-строка пишется в стандартный лог-файл IIS, добавляя к полю
cs-uri-query строку, начинающуюся с “+[Burst:”. Может принимать значения:
full|compact|none .
full - +[Burst:{метод компрессии}/{уровень
компрессии}/{через кого запрос: direct | proxy | mbproxy}/{исходный размер
контента (в байтах)}/{сжатый размер контента (в байтах)}/{процент
компрессии}%/{затраченное время (в мс.)}ms].
Compact - +[Burst:{метод компрессии}/{процент
компрессии}%]. Пригодится в деле, иногда стоит исследовать, что творится с
сервером. После установки: “full”. По умолчанию: “none”. Лучше “full”!
Знать, так всю подноготную.
ReportType - настройка отчета для оценки эффективности
работы фильтра. Отчет пишется в журнал событий для приложений. Может
принимать значения: no|hour|day|week|month .После установки: “day”. По
умолчанию: “no”.
Если есть желание изучить, то вам сюда: Start/Programs/Administrative
Tools/Event Viewer/Application Log - HTTPBurst (Source). Это нужный
параметр! Здесь можно почерпнуть все, что нужно для отладки и работы ISAPI
приложения. Судите сами.
Log файл
ISAPI filter HTTPBurst/1.0.0d loaded with following params:
PriorCompress: "gzip;q=1,0 ,deflate;q=0,5, compress;q=0";
SizeBuffer: "small";
Server: "Apache/1.3.19 (Unix)";
CompressForCompAgent: 1;
MinLength: 128;
DefaultCompressLevel: "max";
DefaultMIME: "text/*, image/gif, application/x-shockwave-flash, text/html,
text/css, application/x-javascript";
DefaultExtension: ".vbs, .class, .html, .htm, .asp, .js, .inc";
DefaultMIME10: "text/*, text/html, text/css";
DefaultExtension10: ".class, .html, .htm, .asp, .inc";
DefaultLog: "full";
ProxyAlwaysPragma: 0;
AlwaysPragmaExtreme: 0;
LoadOrder: "high";
ReportType: "day".
Все ваши параметры, как на параде выстроились. Все видно, доступно.
Дневной отчет представляет из себя слудующие строки:
Отчет ISAPI фильтра HTTPBurst/1.0.0d о компрессии:
всего передано: 5565 kb.,
из них: сжатых данных:
3273 kb.;
не сжатых данных: 2291 kb.;
коэффициент сжатия:
38%;
общее время: 1151823 ms.,
из них: на сжатие:
12703 ms.
В данном случае коэфициент сжатия за период считается по формуле:
(1- X/Y)*100 , где X - размер контента переданного клиентам (сжатые + не
сжатые данные) включая заголовки сервера; Y - размер всего контента
подготовленного сервером для передачи клиентам. Как вы видите данных просто
завались! Только бы не заплутать в трех соснах.
Гибкая настройка ...
Теперь переходим к самому «сложному» (я бы сказал «скользкому») участку
нашего повествования. Специальным заголовкам HTTP для HTTPBurst, которыми
можно гибко настроить каждый ваш сервер. Самый простой пример. На одном
компьютере у вас допустим 5 WWW-серверов. (Максимально в WINDOWS NT 2000
одна сетевая карта может работать с 6 IP адресами.) В трех из них требуется
«турбирование» , а в двух нет. Все параметры, приведенные выше, относятся ко
всем серверам. Но вам нужно настроить конкретный сервер, под конкретную
задачу. Решение? Специальные заголовки фильтра.
Специальные заголовки HTTP
Специальные заголовки для HTTPBurst должны начинаться символами
“HTTPBurst-”. Они служат для гибкой настройки работы HTTPBurst с конкретным
контентом (т.е. службой IIS/виртуальным сервером/каталогом/файлом).
Некоторые заголовки могут перекрывать значения параметров ключа системного
реестра HTTPBurst или их дополнять. Специальные заголовки клиенту не
передаются а служат для более гибкой настройки ваших серверов. Для настройки
потребуется Internet Service Manager. Эти параметры имеют более высокий
приоритет, чем те что были описаны мною выше. Их использование желательно
при наличии более 2-х WWW серверов на одном компьютере.
HTTPBurst-Enabled:
Разрешает или запрещает обработку HTTPBurst’ом конкретного контента. Может
принимать значения: yes|no . После установки: “yes”. По умолчанию: “no”.
В нашем случае воспользуемся Internet Service Menager. И поставим на двух
серверах в поле HTTP Headers “no”. Попросту, отключим «турбину».
Перегрузимся. В итоге получаем, что 3 сервера у нас имеют ускорение, а два
нет. Что и требовалось. Сошлась задачка.
( Внимание ! Длина строки реестра WINDOWS
NT 2000 не должна превышать 255 символов! )
HTTPBurst-Ext:
То же, что и параметр DefaultExtension. На обработку в HTTPBurst поступает
объединение строк из DefaultExtension и HTTPBurst-Ext: для конкретного
контента.
HTTPBurst-MIME:
То же, что и параметр DefaultMIME. На обработку в HTTPBurst
поступает объединение строк из DefaultMIME и HTTPBurst-MIME: для конкретного
контента.
HTTPBurst-Ext10:
То же, что и параметр DefaultExtension10. На обработку в HTTPBurst
поступает объединение строк из DefaultExtension10 и HTTPBurst-Ext10: для
конкретного контента.
HTTPBurst-MIME10:
То же, что и параметр DefaultMIME10. На обработку в HTTPBurst
поступает объединение строк из DefaultMIME10 и HTTPBurst-MIME10: для
конкретного контента.
Во всех этих параметрах: После установки: “”. По умолчанию: “”. Это
сделано для того, чтобы вы могли сами, по вашему желанию, гибко настроить
ISAPI фильтр. Нужно только оптимально подобрать расширения.
HTTPBurst-ThisCompress:
Разрешает или запрещает компрессию конкретного содержания. Может принимать
значения: yes|no. После установки: “”. По умолчанию: “yes”.
HTTPBurst-Log:
То же, что и параметр DefaultLog. Перекрывает значение параметра DefaultLog
для конкретного контента. После установки: “”. По умолчанию: из DefaultLog.
HTTPBurst-Test:
Включение отладочного режима для конкретного контента, т.е. клиенту
отправляются все специальные заголовки HTTPBurst. Может принимать значения:
yes|no. После установки: “”. По умолчанию: “no”.
HTTPBurst-CompressLevel:
То же, что и параметр DefaultCompressLevel. Перекрывает значение
параметра DefaultCompressLevel для конкретного контента. После установки:
“”. По умолчанию: из DefaultCompressLevel.
Добавляя те или иные параметры используя специальные заголовки
HTTP, через Internet Service Manager, можно гибко настроить ваши WWW сервера
под конкретную задачу.
Теперь о том, чем же проверить настройки HTTPBurst!
Есть такая программка Wfetch от Microsoft. Скажу кратко. Полезная штука,
рекомендую. Вот, где ее можно найти Wfetch
http://support.microsoft.com/ default.aspx?scid=kb;EN -US;q284285. Она
проста в использовании и может применяться не только для настройки «турбин»,
описанных мною сейчас, но и для отладки *.ASP, *.PHP, CGI, СFM. Она будет
полезна везде, где существуют запросы клиентов и ответы сервера.
Отзывы, полученные от клиентов, установивших на своих серверах ту или иную
«турбину» достаточно лестные. Хорошие отзывы: Сокращает трафик, уменьшает
бюджет расходуемый на содержание серверов, а некоторым за счет этого
повысили зарплату, пусть на 100 рублей, но повысили. Сколько шоколадок можно
на это купить... Разве это плохо?
Теперь поговорим о том зачем все это надо. Цель моей статьи не расписать
прелести той или иной программы, не делать анализ и выводы, как принято в
конце повествования, а подвигнуть на новые свершения! А анализ вы сможете
сделать сами. Попробовав сделать те же шаги что и я. У каждого должен быть
выбор, свой и единственный. Ведь под лежачий камень вода не течет. Дерзайте.
(Программа для полного описания выбрана свободно («орел – решка») и
расписана полностью до ключей.)
Послесловие. Все способы были опробованы на четырех рабочих серверах.
На двух “тяжелых” серверах. Минимальный объем отдаваемого кода без
графики 223 кб на страницу, таблицы, текстовое поле, техническая и
конструкторская документация. Система Microsoft Windows 2000 Server SP2,
Macromedia ColdFusion Server 5.0, Microsoft SQL Server 2000, MB ASUS Intel
Pentium III 733 МГц и MB INTEL Intel Pentium IV 1.7ГГц, 512 Мб, Adaptec SCSI
– 160, HDD –IBM 36Гб / 10000. 2 IP на сервер.
На двух “легких” серверах. Минимальный объем отдаваемого кода без графики
3-112 кб на страницу, таблицы, текстовое поле, чат, мультимедиа. Система
Microsoft Windows 2000 Server SP2, Microsoft SQL Server 7 SP3, MB ASUS Intel
Pentium III 733 МГц, 256 Мб Adaptec SCSI – 160, HDD –IBM ULTRASTAR 18Гб /
10000 и MB ASUS Intel Pentium II 233 МГц, 128 Мб, Adaptec UW SCSI-II, HDD –
IBM ULTRASTAR 9 Гб. 1PC - 6 IP, 2PC – 24IP.
Во всех случаях программное обеспечение устанавливалось и работало без
каких либо нареканий.
|