Некоторое время я работал над суперэкономичной конфигурацией IIS 7.5 для веб-сайта, предназначенного для обслуживания статических файлов. Чтобы добиться этого, я просто удалил указанный веб-сайт для всех динамических модулей и указал только собственные модули, такие как StaticFileModule
, AnonymousAuthenticationModule
, HttpCompressionModule
и т.п.
Это уже привело к значительному снижению объема памяти и накладных расходов на обработку для рабочего процесса, а общая производительность намного выше, чем у веб-сайта по умолчанию.
Теперь, в качестве следующего шага, я хотел бы посмотреть, смогу ли я еще больше сократить количество модулей, загружаемых в память.
Я мог бы просто удалить модули один за другим и попытаться увидеть, как это влияет на производительность и функциональность, но я бы предпочел исследовать, какими функциональными возможностями фактически обладают / управляют отдельные модули.
Некоторые модули говорят сами за себя (т. Е. DefaultDocumentModule
, DirectoryListingModule
), но некоторые нет.
Можно ли где-нибудь найти документацию по встроенным собственным модулям?
Матиас,
Вы можете найти список как собственных, так и управляемых модулей, встроенных в IIS. Вот (Справочный раздел модуля). В этой документации дается описание только собственных или служебных модулей.
Поскольку это минимальная установка IIS, я предполагаю, что вы не устанавливаете интеграцию .NET. Если это предположение верно, то приведенная выше ссылка должна быть всем, что вам нужно, поскольку вам не о каких управляемых модулях следует беспокоиться.
При использовании графического интерфейса для установки IIS и простом выборе модуля «Статическое содержимое» вы получаете следующие модули:
<globalModules>
<add name="UriCacheModule" ... />
<add name="FileCacheModule" .../>
<add name="TokenCacheModule" ... />
<add name="HttpCacheModule" ... />
<add name="ProtocolSupportModule" ... />
<add name="StaticFileModule" ... />
<add name="AnonymousAuthenticationModule" ... />
</globalModules>
Вы можете сократить их до двух:
<globalModules>
<add name="AnonymousAuthenticationModule" ... />
<add name="StaticFileModule" ... />
</globalModules>
но я думаю, что модули кеширования имеют смысл. Затем, если вы пропустите какие-либо функции, вы можете добавить их позже.
DefaultAppPool настроен на использование .NET Framework 'v2.0'
хотя для этого нет никакой поддержки. Измените это на 'No Managed Code'
.
Если вы обслуживаете только GIF, PNG и JPG также удалите все другие типы MIME.