<p> Ясен пень, заголовок немного провокационный. Но мне надоели эти занудные “Быстрые веб-страницы”, поэтому серия статей по оптимизации веб-приложений продолжится под заголовком “Скаженi кабани”. Уже интереснее, правда? </p> <p> ОК, мальчики и девочки, тема сегодняшней лекции – создание “облегченной” версии IIS 7.0 сервера, для простейших HTML приложений и статических файлов. А нафиг надо? Понадобиться это может в случае, если вы решили вынести все свои статические ресурсы (картинки, css, js-скрипты) на другой сервер. Или же, если вы наколбасили 2000-3000 html страниц, а Апач настраивать вы не умеете… Для тех, кто еще не успел поставить IIS 7 на свой сервер, дам небольшой setup snippet: </p> <font color="#808080">Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;WAS-WindowsActivationService;WAS-ProcessModel</font> <p> (<strong>заметка</strong>: я опустил IIS-ManagementConsole, WAS-NetFxEnvironment, и WAS-ConfigurationAPI, чтобы сервер был дружелюбнее) </p> <p> Прежде, чем следовать советам всяких умников (вроде меня) сделайте бэкап настроек сервера по умолчанию: </p> <p> <font color="#808080">%windir%\system32\inetsrv\appcmd add backup "default_install"</font> </p> <p> Теперь осталось “раздеть” IIS, бережно, как любимую девушку: </p> <p> <font color="#808080">%windir%\system32\inetsrv\appcmd uninstall module TokenCacheModule <br /> %windir%\system32\inetsrv\appcmd uninstall module DefaultDocumentModule <br /> %windir%\system32\inetsrv\appcmd uninstall module DirectoryListingModule <br /> %windir%\system32\inetsrv\appcmd uninstall module RequestFilteringModule <br /> %windir%\system32\inetsrv\appcmd uninstall module HttpLoggingModule <br /> %windir%\system32\inetsrv\appcmd uninstall module ProtocolSupportModule <br /> %windir%\system32\inetsrv\appcmd uninstall module RequestMonitorModule</font> </p> <p> <font color="#808080">%windir%\system32\inetsrv\appcmd uninstall module CustomErrorModule</font> </p> <p> Вуаля, теперь у вас есть <strike>обнаженная девушка</strike> облегченный сервер, на котором остались только: </p> <p> 1) <strong>UriCacheModule</strong> – кэширует информацию о URLах на уровне оболочки </p> <p> 2) <strong>FileCacheModule</strong> – кэширует файлы в память </p> <p> 3) <strong>HttpCacheModule</strong> – кэширует файлы на уровне ядра </p> <p> 4) <strong>StaticCompressionModule</strong> – сжимает статические файлы для уменьшения передаваемого объема данных </p> <p> 5) <strong>StaticFileModule</strong> – обрабатывает запросы к статическим ресурсам </p> <p> 6) <strong>AnonymousAuthenticationModule</strong> – модуль анонимной аутентификации (а по названию и не скажешь, правда?) </p> <p> Небольшой тест показывает разницу между пропускной способностью “облегченной” версии IIS, стандартной комплектацией сервера и сервера со всеми модулями (с отключенным кэшем на уровне ядра). </p> <a href="/image.axd?picture=WindowsLiveWriter/IIS7.0_10290/image_4.png"><img style="border: 0px none " src="/image.axd?picture=WindowsLiveWriter/IIS7.0_10290/image_thumb_1.png" border="0" alt="image" title="image" width="487" height="295" /></a> <p>   </p> <p> Таким образом мы стали быстрее примерно на 58%, по сравнению с сервером, полностью напичканным модулями. Также снизилось количество байт передаваемых по сети, примерно на 22%. И я сохранил 5 метров трафика. </p> <p> <strong>Полезные ссылки</strong> </p> <p> <a rel="nofollow" href="http://learn.iis.net/page.aspx/136/install-typical-iis-workloads/">Install Typical IIS Workloads</a> </p> <p> <a rel="nofollow" href="http://learn.iis.net/page.aspx/29/installing-iis7-on-windows-server-2008/">Installing IIS 7.0 on Windows Server 2008</a> </p>

Ясен пень, заголовок немного провокационный. Но мне надоели эти занудные “Быстрые веб-страницы”, поэтому серия статей по оптимизации веб-приложений продолжится под заголовком “Скаженi кабани”. Уже интереснее, правда?

ОК, мальчики и девочки, тема сегодняшней лекции – создание “облегченной” версии IIS 7.0 сервера, для простейших HTML приложений и статических файлов. А нафиг надо? Понадобиться это может в случае, если вы решили вынести все свои статические ресурсы (картинки, css, js-скрипты) на другой сервер. Или же, если вы наколбасили 2000-3000 html страниц, а Апач настраивать вы не умеете… Для тех, кто еще не успел поставить IIS 7 на свой сервер, дам небольшой setup snippet:

Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;WAS-WindowsActivationService;WAS-ProcessModel

(заметка: я опустил IIS-ManagementConsole, WAS-NetFxEnvironment, и WAS-ConfigurationAPI, чтобы сервер был дружелюбнее)

Прежде, чем следовать советам всяких умников (вроде меня) сделайте бэкап настроек сервера по умолчанию:

%windir%\system32\inetsrv\appcmd add backup "default_install"

Теперь осталось “раздеть” IIS, бережно, как любимую девушку:

%windir%\system32\inetsrv\appcmd uninstall module TokenCacheModule
%windir%\system32\inetsrv\appcmd uninstall module DefaultDocumentModule
%windir%\system32\inetsrv\appcmd uninstall module DirectoryListingModule
%windir%\system32\inetsrv\appcmd uninstall module RequestFilteringModule
%windir%\system32\inetsrv\appcmd uninstall module HttpLoggingModule
%windir%\system32\inetsrv\appcmd uninstall module ProtocolSupportModule
%windir%\system32\inetsrv\appcmd uninstall module RequestMonitorModule

%windir%\system32\inetsrv\appcmd uninstall module CustomErrorModule

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

1) UriCacheModule – кэширует информацию о URLах на уровне оболочки

2) FileCacheModule – кэширует файлы в память

3) HttpCacheModule – кэширует файлы на уровне ядра

4) StaticCompressionModule – сжимает статические файлы для уменьшения передаваемого объема данных

5) StaticFileModule – обрабатывает запросы к статическим ресурсам

6) AnonymousAuthenticationModule – модуль анонимной аутентификации (а по названию и не скажешь, правда?)

Небольшой тест показывает разницу между пропускной способностью “облегченной” версии IIS, стандартной комплектацией сервера и сервера со всеми модулями (с отключенным кэшем на уровне ядра).

image

 

Таким образом мы стали быстрее примерно на 58%, по сравнению с сервером, полностью напичканным модулями. Также снизилось количество байт передаваемых по сети, примерно на 22%. И я сохранил 5 метров трафика.

Полезные ссылки

Install Typical IIS Workloads

Installing IIS 7.0 on Windows Server 2008

blog comments powered by Disqus